我刚刚注意到有关项目滑块Article from codrops的这篇精彩文章:此演示可在此处Demo of the article "How to Create a Simple Multi-Item Slider"
我想在我的网站上实现相同的功能,只需进行一些更改。
项目的显示由三个主文件组成:
HTML
<div class="container">
<header>
<h1>Simple Multi-Item Slider <span>Category slider with CSS animations</span></h1>
</header>
<div class="main">
<div id="mi-slider" class="mi-slider">
<ul>
<li><a href="#"><img src="images/1.jpg" alt="img01"><h4>Boots</h4></a></li>
<li><a href="#"><img src="images/2.jpg" alt="img02"><h4>Oxfords</h4></a></li>
<li><a href="#"><img src="images/3.jpg" alt="img03"><h4>Loafers</h4></a></li>
<li><a href="#"><img src="images/4.jpg" alt="img04"><h4>Sneakers</h4></a></li>
</ul>
<ul>
<li><a href="#"><img src="images/5.jpg" alt="img05"><h4>Belts</h4></a></li>
<li><a href="#"><img src="images/6.jpg" alt="img06"><h4>Hats & Caps</h4></a></li>
<li><a href="#"><img src="images/7.jpg" alt="img07"><h4>Sunglasses</h4></a></li>
<li><a href="#"><img src="images/8.jpg" alt="img08"><h4>Scarves</h4></a></li>
</ul>
<ul>
<li><a href="#"><img src="images/9.jpg" alt="img09"><h4>Casual</h4></a></li>
<li><a href="#"><img src="images/10.jpg" alt="img10"><h4>Luxury</h4></a></li>
<li><a href="#"><img src="images/11.jpg" alt="img11"><h4>Sport</h4></a></li>
</ul>
<ul>
<li><a href="#"><img src="images/12.jpg" alt="img12"><h4>Carry-Ons</h4></a></li>
<li><a href="#"><img src="images/13.jpg" alt="img13"><h4>Duffel Bags</h4></a></li>
<li><a href="#"><img src="images/14.jpg" alt="img14"><h4>Laptop Bags</h4></a></li>
<li><a href="#"><img src="images/15.jpg" alt="img15"><h4>Briefcases</h4></a></li>
</ul>
<nav>
<a href="#">Shoes</a>
<a href="#">Accessories</a>
<a href="#">Watches</a>
<a href="#">Bags</a>
</nav>
</div>
</div>
</div><!-- /container -->
第一个CSS文件(demo.css)
/* General Demo Style */
@import url(http://fonts.googleapis.com/css?family=Lato:400,700,900);
html { height: 100%; }
*,
*:after,
*:before {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding: 0;
margin: 0;
}
/* Clearfix hack by Nicolas Gallagher: http://nicolasgallagher.com/micro-clearfix-hack/ */
.clearfix:before,
.clearfix:after {
content: " ";
display: table;
}
.clearfix:after {
clear: both;
}
.clearfix {
*zoom: 1;
}
body {
font-family: 'Lato', Calibri, Arial, sans-serif;
background: #fff;
font-weight: 400;
font-size: 15px;
color: #333;
overflow: scroll;
overflow-x: hidden;
}
a {
color: #555;
text-decoration: none;
}
.container {
width: 100%;
position: relative;
}
.container > header {
width: 90%;
max-width: 1240px;
margin: 0 auto;
position: relative;
padding: 30px;
}
.main {
padding-bottom: 80px;
}
.container > header h1 {
font-size: 34px;
line-height: 38px;
margin: 0;
font-weight: 700;
color: #333;
float: left;
}
.container > header h1 span {
display: block;
font-size: 20px;
line-height: 26px;
font-weight: 300;
}
/* Header Style */
.codrops-top {
line-height: 24px;
font-size: 11px;
background: #fff;
background: rgba(255, 255, 255, 0.5);
text-transform: uppercase;
z-index: 9999;
position: relative;
box-shadow: 1px 0px 2px rgba(0,0,0,0.2);
}
.codrops-top a {
padding: 0px 10px;
letter-spacing: 1px;
color: #333;
display: inline-block;
}
.codrops-top a:hover {
background: rgba(255,255,255,0.8);
color: #000;
}
.codrops-top span.right {
float: right;
}
.codrops-top span.right a {
float: left;
display: block;
}
/* Demo Buttons Style */
.codrops-demos {
float: right;
padding-top: 10px;
}
.codrops-demos a {
display: inline-block;
margin: 10px;
color: #666;
font-weight: 700;
line-height: 30px;
border-bottom: 4px solid transparent;
}
.codrops-demos a:hover {
color: #000;
border-color: #000;
}
.codrops-demos a.current-demo,
.codrops-demos a.current-demo:hover {
color: #aaa;
border-color: #aaa;
}
第二个CSS文件(style.css)
@import url('demo.css');
.mi-slider {
position: relative;
margin-top: 30px;
height: 490px;
}
.mi-slider ul {
list-style-type: none;
position: absolute;
width: 100%;
left: 0;
bottom: 140px;
overflow: hidden;
text-align: center;
pointer-events: none;
}
.no-js .mi-slider ul {
position: relative;
left: auto;
bottom: auto;
margin: 0;
overflow: visible;
}
.mi-slider ul.mi-current {
pointer-events: auto;
}
.mi-slider ul li {
display: inline-block;
padding: 20px;
width: 20%;
max-width: 300px;
-webkit-transform: translateX(600%);
transform: translateX(600%);
-webkit-transition: opacity 0.2s linear;
transition: opacity 0.2s linear;
}
.no-js .mi-slider ul li {
-webkit-transform: translateX(0);
transform: translateX(0);
}
.mi-slider ul li a,
.mi-slider ul li img {
display: block;
margin: 0 auto;
}
.mi-slider ul li a {
outline: none;
cursor: pointer;
}
.mi-slider ul li img {
max-width: 100%;
border: none;
}
.mi-slider ul li h4 {
display: inline-block;
font-family: Baskerville, "Baskerville Old Face", "Hoefler Text", Garamond, "Times New Roman", serif;
font-style: italic;
font-weight: 400;
font-size: 18px;
padding: 20px 10px 0;
}
.mi-slider ul li:hover {
opacity: 0.7;
}
.mi-slider nav {
position: relative;
top: 400px;
text-align: center;
max-width: 800px;
margin: 0 auto;
border-top: 5px solid #333;
}
.no-js nav {
display: none;
}
.mi-slider nav a {
display: inline-block;
text-transform: uppercase;
letter-spacing: 5px;
padding: 40px 30px 30px 34px;
position: relative;
color: #888;
outline: none;
-webkit-transition: color 0.2s linear;
transition: color 0.2s linear;
}
.mi-slider nav a:hover,
.mi-slider nav a.mi-selected {
color: #000;
}
.mi-slider nav a.mi-selected:after,
.mi-slider nav a.mi-selected:before {
content: '';
position: absolute;
top: -5px;
border: solid transparent;
height: 0;
width: 0;
position: absolute;
pointer-events: none;
}
.mi-slider nav a.mi-selected:after {
border-color: transparent;
border-top-color: #fff;
border-width: 20px;
left: 50%;
margin-left: -20px;
}
.mi-slider nav a.mi-selected:before {
border-color: transparent;
border-top-color: #333;
border-width: 27px;
left: 50%;
margin-left: -27px;
}
/* Move classes and animations */
.mi-slider ul:first-child li,
.no-js .mi-slider ul li {
-webkit-animation: scaleUp 350ms ease-in-out both;
animation: scaleUp 350ms ease-in-out both;
}
@-webkit-keyframes scaleUp {
0% { -webkit-transform: translateX(0) scale(0); }
100% { -webkit-transform: translateX(0) scale(1); }
}
@keyframes scaleUp {
0% { -webkit-transform: translateX(0) scale(0); transform: translateX(0) scale(0); }
100% { -webkit-transform: translateX(0) scale(1); transform: translateX(0) scale(1); }
}
.mi-slider ul:first-child li:first-child {
-webkit-animation-delay: 90ms;
animation-delay: 90ms;
}
.mi-slider ul:first-child li:nth-child(2) {
-webkit-animation-delay: 180ms;
animation-delay: 180ms;
}
.mi-slider ul:first-child li:nth-child(3) {
-webkit-animation-delay: 270ms;
animation-delay: 270ms;
}
.mi-slider ul:first-child li:nth-child(4) {
-webkit-animation-delay: 360ms;
animation-delay: 360ms;
}
/* moveFromRight */
.mi-slider ul.mi-moveFromRight li {
-webkit-animation: moveFromRight 350ms ease-in-out both;
animation: moveFromRight 350ms ease-in-out both;
}
/* moveFromLeft */
.mi-slider ul.mi-moveFromLeft li {
-webkit-animation: moveFromLeft 350ms ease-in-out both;
animation: moveFromLeft 350ms ease-in-out both;
}
/* moveToRight */
.mi-slider ul.mi-moveToRight li {
-webkit-animation: moveToRight 350ms ease-in-out both;
animation: moveToRight 350ms ease-in-out both;
}
/* moveToLeft */
.mi-slider ul.mi-moveToLeft li {
-webkit-animation: moveToLeft 350ms ease-in-out both;
animation: moveToLeft 350ms ease-in-out both;
}
/* Animation Delays */
.mi-slider ul.mi-moveToLeft li:first-child,
.mi-slider ul.mi-moveFromRight li:first-child,
.mi-slider ul.mi-moveToRight li:nth-child(4),
.mi-slider ul.mi-moveFromLeft li:nth-child(4) {
-webkit-animation-delay: 0ms;
animation-delay: 0ms;
}
.mi-slider ul.mi-moveToLeft li:nth-child(2),
.mi-slider ul.mi-moveFromRight li:nth-child(2),
.mi-slider ul.mi-moveToRight li:nth-child(3),
.mi-slider ul.mi-moveFromLeft li:nth-child(3) {
-webkit-animation-delay: 90ms;
animation-delay: 90ms;
}
.mi-slider ul.mi-moveToLeft li:nth-child(3),
.mi-slider ul.mi-moveFromRight li:nth-child(3),
.mi-slider ul.mi-moveToRight li:nth-child(2),
.mi-slider ul.mi-moveFromLeft li:nth-child(2) {
-webkit-animation-delay: 180ms;
animation-delay: 180ms;
}
.mi-slider ul.mi-moveToLeft li:nth-child(4),
.mi-slider ul.mi-moveFromRight li:nth-child(4),
.mi-slider ul.mi-moveToRight li:first-child,
.mi-slider ul.mi-moveFromLeft li:first-child {
-webkit-animation-delay: 270ms;
animation-delay: 270ms;
}
/* Animations */
@-webkit-keyframes moveFromRight {
0% { -webkit-transform: translateX(600%); }
100% { -webkit-transform: translateX(0%); }
}
@-webkit-keyframes moveFromLeft {
0% { -webkit-transform: translateX(-600%); }
100% { -webkit-transform: translateX(0%); }
}
@-webkit-keyframes moveToRight {
0% { -webkit-transform: translateX(0%); }
100% { -webkit-transform: translateX(600%); }
}
@-webkit-keyframes moveToLeft {
0% { -webkit-transform: translateX(0%); }
100% { -webkit-transform: translateX(-600%); }
}
@keyframes moveFromRight {
0% { -webkit-transform: translateX(600%); transform: translateX(600%); }
100% { -webkit-transform: translateX(0); transform: translateX(0); }
}
@keyframes moveFromLeft {
0% { -webkit-transform: translateX(-600%); transform: translateX(-600%); }
100% { -webkit-transform: translateX(0); transform: translateX(0); }
}
@keyframes moveToRight {
0% { -webkit-transform: translateX(0%); transform: translateX(0%); }
100% { -webkit-transform: translateX(600%); transform: translateX(600%); }
}
@keyframes moveToLeft {
0% { -webkit-transform: translateX(0%); transform: translateX(0%); }
100% { -webkit-transform: translateX(-600%); transform: translateX(-600%); }
}
.mi-slider {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
/* Media Queries */
@media screen and (max-width: 910px){
.mi-slider nav {
max-width: 90%;
}
.mi-slider nav a {
font-size: 12px;
padding: 40px 10px 30px 14px;
}
}
@media screen and (max-width: 740px){
.mi-slider {
height: 300px;
}
.mi-slider nav {
top: 220px;
}
}
@media screen and (max-width: 490px){
.mi-slider {
text-align: center;
height: auto;
}
.mi-slider ul {
position: relative;
display: inline;
bottom: auto;
pointer-events: auto;
}
.mi-slider ul li {
-webkit-animation: none !important;
animation: none !important;
-webkit-transform: translateX(0) !important;
transform: translateX(0) !important;
padding: 10px 3px;
min-width: 140px;
}
.mi-slider nav {
display: none;
}
}
我要做的是从demo.css
文件中删除以下代码并将其应用于需要它的特定元素,而不是将其应用于所有内容。保留此代码对我的网站显示有一些影响,但当我删除它时,它也会影响滑动项目:
*,
*:after,
*:before {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding: 0;
margin: 0;
}
问题是,我不知道使用该代码的元素以及为什么它对滑动项有一些影响。
请告诉我如何解决这个问题。
答案 0 :(得分:1)
正如我在其他帖子中所承诺的,这是我对你的问题的帮助。
有问题的代码(如下所示)实际上是一种强制浏览器使用旧border-box
模式而不是默认content-box
的黑客/修正。
*,
*:after,
*:before {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding: 0;
margin: 0;
}
两种模式有什么区别?在border-box
模式下,元素的宽度/高度组合了内容,填充和边框的宽度/高度。在content-box
模式中,元素的宽度/高度仅与其内容有关。来源:developer.mozilla.org。
简而言之,您可以安全地删除有问题的CSS块。 然而,这会导致某些项目变大。
为了获得相同的外观,您必须找出所有设置width
或height
以及 padding
或{{{ 1}}。在这些情况下,只需将以下行添加到块中:
border
但是,经过进一步检查,我发现-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
仅用于演示,可以完全删除。您可以在demo.css
。
答案 1 :(得分:0)
基本上,星号会导致CSS应用于您网站上的所有内容。您可以通过一些试验和错误来解决问题。只需将星号与似乎适用的类交换即可。只是从查看代码,它似乎是.mi-slider,但是也可能有一些额外的类。你只有一些课程,所以不用花太长时间才能弄清楚究竟要使用哪些课程。
.mi-slider,
.mi-slider:after,
.mi-slider:before {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding: 0;
margin: 0;
}
&#13;