一页上有多个滑块 [英] Multiple sliders on one page

查看:66
本文介绍了一页上有多个滑块的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

好的,我在javascript和Jquery中建立了一个滑块(在你的帮助下)但是现在我想在1页上有多个滑块。虽然只使用一个JavaScript。但是......滑块的宽度(或项目数)可以不同:由于css宽度,滑块的名称也不同。

Ok, I builded a slider in javascript and Jquery (with help of you guys) But now I want to have multiple sliders on 1 page. While using just one javascript. BUT...the slider can be different in width (or number of items): also the name of the slider is different because of the css width.

那么怎么做我使用1个javascript来控制不同的滑块

So How do I use 1 javascript to controle different sliders

这是我的代码:

HTML

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <script src="http://code.jquery.com/jquery-latest.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<style type="text/css">
#temp{
height: 300px;
}

#container{
    width: 500px;
    height: 150px;
    background:#CDFAA8;
    overflow:hidden;
    position:absolute;
    left: 13px;
    }

#slider{
    width: 800px;
    height: 150px;
    background:#063;
    position:absolute;
    left: 0px;
}

#block1{
    width: 100px;
    height: 150px;
    background:#067;
    float: left;
}

#block2{
    width: 100px;
    height: 150px;
    background:#079;
    float: left;
}

#move_right{
    height: 150px;
    width: 20px;
    background: #3f3f3f;
    position: absolute;
    right:0px;
    z-index: 200;
    opacity: 0.2;
}

#move_left{
    height: 150px;
    width: 20px;
    background: #3f3f3f;
    position: absolute;
    left:0px;
    z-index: 200;
    opacity: 0.2;
}​
</style>
</head>

<body>
<div id="temp">
<div id="container">
    <div id="move_left"><button id="right">&laquo;</button></div><div id="move_right"><br><br><button id="left">&raquo;</button></div>
<div id="slider">

    <div id="block1">1</div>    
    <div id="block2">2</div>
    <div id="block1">3</div>    
    <div id="block2">4</div> 
    <div id="block1">5</div>    
    <div id="block2">6</div>
    <div id="block1">7</div>    
    <div id="block2">8</div>


</div>
</div>
</div>


<div id="slider">

    <div id="block1">1</div>    
    <div id="block2">2</div>
    <div id="block1">3</div>    
    <div id="block2">4</div> 
    <div id="block1">5</div>    
    <div id="block2">6</div>
    <div id="block1">7</div>    
    <div id="block2">8</div>


</div>
</div>
</div>

JavaScript

(function($) {
    var slider = $('#slider'),
        step = 500,
        left = parseInt(slider.css('left'), 10),
        max = $('#container').width() - slider.width(),
        min = 0;

    $("#left").click(function() {
        if (left > max) {
            var newLeft = left - step;
            left = (newLeft>max) ? newLeft : max;
            $("#slider").animate({
                "left": left + 'px'
            }, "slow");
        }
    });

    $("#right").click(function() {
        if (left < 0) {
            var newLeft = left + step;
            left = (newLeft<min) ? newLeft : min;
            slider.animate({
                "left": left + 'px'
            }, "slow");
        }
    });
})(jQuery);


推荐答案

这应该没关系:

(function($) {
    $('#temp #container').each(function(){
        var slider = $(this).find('#slider'),
        parent = $(this),
        step = 500,
        left = parseInt(slider.css('left'), 10),
        max = parent.width() - slider.width(),
        min = 0;

    parent.find("#left").click(function() {
        if (left > max) {
            var newLeft = left - step;
            left = (newLeft>max) ? newLeft : max;
            slider.animate({
                "left": left + 'px'
            }, "slow");
        }
    });

    parent.find("#right").click(function() {
        if (left < 0) {
            var newLeft = left + step;
            left = (newLeft<min) ? newLeft : min;
            slider.animate({
                "left": left + 'px'
            }, "slow");
        }
    });
});
})(jQuery);​

FIDDLE

这篇关于一页上有多个滑块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆