2015-06-21 34 views
1

我有这个滑块,我使用,只要我点击下一个或上一个按钮,它以覆盖我的网站的一些元素的方式转变。我相信#mask中的问题,我试图改变一下,但没有任何区别,对是否导致问题或其他问题有任何想法?和任何解决方案?滑块坏移位

代码:

<!DOCTYPE html> 
<html> 

    <head> 
     <meta charset="utf-8"> 
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
     <title>Gallery</title> 
     <meta name="description" content="An interactive getting started guide for Brackets."> 
     <link rel="stylesheet" href=""> 
<style> 
     body { 
    margin: 0; 
} 
#wrapper { 
    width: 100%; 
    height: 350px; 
    /*position: absolute;*/ 
    top: 0; 
    left: 0; 
    background-color: white; 
    overflow: hidden; 
} 
#nav p { 
    position: absolute; 
    top: 100px; 
    cursor:pointer; 
    color:grey; 

} 
#prev { 
    left: 40px; 
} 
#next { 
    right: 40px; 
} 
#mask { 
    width: 50000px; 
    height: 100%; 
    background-color: white; 
} 
.item { 
    width: 1200px; 
    height: 100%; 
    float: left; 
    background-color: white; 
} 
.content img { 
    height: 100px; 
    width: 17%; 
    float:left; 
    margin-right: 10px; 
    margin-bottom: 10px; 
} 
.content { 
    width: 50%; 
    height: 220px; 
    top: 20%; 
    margin: auto; 
    background-color: white; 
    position: relative; 
} 
.content a { 
    position: relative; 
    top: -17px; 
    left: 170px; 
} 
.selected { 
    background: #fff; 
    font-weight: 700; 
} 
.clear { 
    clear:both; 
} 



     </style> 
    </head> 

    <body> 
<div id="wrapper"> 
    <div id="nav"> 
     <h1><p id="prev">&lt;</p></h1> 
     <h1><p id="next">&gt;</p></h1> 
    </div> 
    <div id="mask"> 
     <div id="item1" class="item"> <a name="item1"></a> 

      <div class="content"> 
       <img id="image1" src="http://placehold.it/350x150" alt="slot1" /> 
       <img id="image2" src="http://placehold.it/350x150" /> 
       <img id="image3" src="http://placehold.it/350x150" /> 
       <img id="image4" src="http://placehold.it/350x150" /> 
       <img id="image5" src="http://placehold.it/350x150" /> 
       <img id="image6" src="http://placehold.it/350x150" /> 
       <img id="image7" src="http://placehold.it/350x150" /> 
       <img id="image8" src="http://placehold.it/350x150" /> 
       <img id="image9" src="http://placehold.it/350x150" /> 
       <img id="image10" src="http://placehold.it/350x150" /> 
      </div> 
     </div> 
     <div id="item2" class="item"> 
      <div class="content"> 
       <img id="image1" src="http://placehold.it/350x150" alt="slot2" /> 
       <img id="image2" src="http://placehold.it/350x150" /> 
       <img id="image3" src="http://placehold.it/350x150" /> 
       <img id="image4" src="http://placehold.it/350x150" /> 
       <img id="image5" src="http://placehold.it/350x150" /> 
       <img id="image6" src="http://placehold.it/350x150" /> 
       <img id="image7" src="http://placehold.it/350x150" /> 
       <img id="image8" src="http://placehold.it/350x150" /> 
       <img id="image9" src="http://placehold.it/350x150" /> 
       <img id="image10" src="http://placehold.it/350x150" /> 
      </div> 
     </div> 
     <div id="item3" class="item"> 
      <div class="content"> 
       <img id="image1" src="http://placehold.it/350x150" alt="slot2" /> 
       <img id="image2" src="http://placehold.it/350x150" /> 
       <img id="image3" src="http://placehold.it/350x150" /> 
       <img id="image4" src="http://placehold.it/350x150" /> 
       <img id="image5" src="http://placehold.it/350x150" /> 
       <img id="image6" src="http://placehold.it/350x150" /> 
       <img id="image7" src="http://placehold.it/350x150" /> 
       <img id="image8" src="http://placehold.it/350x150" /> 
       <img id="image9" src="http://placehold.it/350x150" /> 
       <img id="image10" src="http://placehold.it/350x150" /> 
      </div> 
     </div> 
    </div> 
</div> 






<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

<script> 
$(document).ready(function() { 
    var newItem = 0; 
    var itemCount = $('.item').length; 

    function shift(direction) { 
     var $mask = $('#mask'), 
      $items = $('.item'), 
      currentItem = $mask.data('currentItem'); 

     if (currentItem === undefined) { 
      currentItem = 0; 
     } 

     $mask.data('currentItem', newItem).animate({ 
      marginLeft: -newItem * $items.eq(0).width() 
     }); 
    } 

    $('#prev').click(function() { 
     if (newItem === 0) { 
      newItem = itemCount - 1; 
     } else { 
      newItem--; 
     } 
     return shift(); 
    }); 
    $('#next').click(function() { 
     if (newItem === itemCount - 1) { 
      newItem = 0; 
     } else { 
      newItem++; 
     } 
     return shift(); 
    }); 

    function resizePanel() { 
     width = $(window).width(); 
     height = $(window).height(); 

     $('#wrapper, .item').css({ 
      width: width, 
      height: height 
     }); 
    } 

    $(window).resize(function() { 
     resizePanel(); 
    }); 
    resizePanel(); 
}); 
     </script> 
    </body> 
</html> 

的jsfiddle:https://jsfiddle.net/ew98y5fv/

+0

您的jsfiddle不含任何其他元素,所以不能说是什么问题。请你能给你的小提琴添加另一个元素来演示你的问题吗? –

+0

@ArathiSreekumar看到分隔线在消失前转移到最终的左/右的方式。所以他们正在传递页面中的其他元素 – mikeb

+0

我想你在问一个问题之前关于一些导航单元。所以这里的答案是相似的。我会尝试添加一些代码来演示。您需要将滑块逻辑与页面的其余部分分开。 –

回答

2

我已经修改了你HTML:

<body> 
<div id="wrapper"> 
    <div id="slider-container"> 
     <div id="nav"> 
      <p id="prev">&lt;</p> 
      <p id="next">&gt;</p> 
     </div> 
     <div class="slider-view-area"> 
      <div id="mask"> 
       <div id="item1" class="item"> <a name="item1"></a> 

        <div class="content"> 
         <img id="image1" src="http://placehold.it/350x150" alt="slot1" /> 
         <img id="image2" src="http://placehold.it/350x150" /> 
         <img id="image3" src="http://placehold.it/350x150" /> 
         <img id="image4" src="http://placehold.it/350x150" /> 
         <img id="image5" src="http://placehold.it/350x150" /> 
         <img id="image6" src="http://placehold.it/350x150" /> 
         <img id="image7" src="http://placehold.it/350x150" /> 
         <img id="image8" src="http://placehold.it/350x150" /> 
         <img id="image9" src="http://placehold.it/350x150" /> 
         <img id="image10" src="http://placehold.it/350x150" /> 
        </div> 
       </div> 
       <div id="item2" class="item"> 
        <div class="content"> 
         <img id="image1" src="http://placehold.it/350x150" alt="slot2" /> 
         <img id="image2" src="http://placehold.it/350x150" /> 
         <img id="image3" src="http://placehold.it/350x150" /> 
         <img id="image4" src="http://placehold.it/350x150" /> 
         <img id="image5" src="http://placehold.it/350x150" /> 
         <img id="image6" src="http://placehold.it/350x150" /> 
         <img id="image7" src="http://placehold.it/350x150" /> 
         <img id="image8" src="http://placehold.it/350x150" /> 
         <img id="image9" src="http://placehold.it/350x150" /> 
         <img id="image10" src="http://placehold.it/350x150" /> 
        </div> 
       </div> 
       <div id="item3" class="item"> 
        <div class="content"> 
         <img id="image1" src="http://placehold.it/350x150" alt="slot2" /> 
         <img id="image2" src="http://placehold.it/350x150" /> 
         <img id="image3" src="http://placehold.it/350x150" /> 
         <img id="image4" src="http://placehold.it/350x150" /> 
         <img id="image5" src="http://placehold.it/350x150" /> 
         <img id="image6" src="http://placehold.it/350x150" /> 
         <img id="image7" src="http://placehold.it/350x150" /> 
         <img id="image8" src="http://placehold.it/350x150" /> 
         <img id="image9" src="http://placehold.it/350x150" /> 
         <img id="image10" src="http://placehold.it/350x150" /> 
        </div> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 
</body> 

这里是CSS:

body { 
    margin: 0; 
} 
#wrapper { 
    background-color: blue; 
    padding: 20px 0; 
} 

#slider-container { 
    padding: 20px 50px; 
    height: 350px; 
    background-color: white; 
    overflow: hidden; 
    position: relative; 
} 

.slider-view-area { 
    overflow: hidden; 
} 

#nav p { 
    position: absolute; 
    top: 100px; 
    cursor:pointer; 
    color:grey; 

} 
#prev { 
    left: 20px; 
    font-size: 30px; 
} 
#next { 
    right: 20px; 
    font-size: 30px; 
} 
#mask { 
    width: 50000px; 
    height: 100%; 
    background-color: white; 
} 
.item { 
    width: 1200px; 
    height: 100%; 
    float: left; 
    background-color: white; 
} 
.content img { 
    height: 100px; 
    width: 17%; 
    float:left; 
    margin-right: 10px; 
    margin-bottom: 10px; 
} 
.content { 
    width: 50%; 
    height: 220px; 
    top: 20%; 
    margin: auto; 
    background-color: white; 
    position: relative; 
} 
.content a { 
    position: relative; 
    top: -17px; 
    left: 170px; 
} 
.selected { 
    background: #fff; 
    font-weight: 700; 
} 
.clear { 
    clear:both; 
} 

我身边取出H1标签你的 导航元素,因为您不应该使用标题标签来显示更改,例如使图标看起来更大。为此,你应该使用CSS。在这种情况下,h1标记在语义上不正确,因为导航元素不是主标题。

我刚刚去了一个快速修复。但是,如果您想将滑块设置为页面中的独立组件,则应选择其方向。

这里是的jsfiddle:https://jsfiddle.net/ew98y5fv/3/

+0

感谢您的帮助。但是有一个问题,如果我重新调整JSfiddle中的结果标签的大小,除了当前的其他分频器出现。为什么? – mikeb

+0

调整大小时,您将窗口宽度设置为包装和项目。我不知道这个的目的,因为宽度无论如何都是100%。但这可能与这种行为有关。 –

+0

我应该删除此功能吗? – mikeb