javascript滑塊的實現(xiàn)(手機端觸屏滑動調節(jié)大小)

如下為可調節(jié)狀態(tài):


風量1.jpg

如下為不可調節(jié)狀態(tài):


風量2.jpg

html文件:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8;no-cache" />
    <title>slider</title>
    <link type="text/css" href="css/style_copy.css" rel="stylesheet" />
</head>
<body>

<div class="User_ratings" style="margin: auto">
    <span style="color:dodgerblue;float: left;font-size: 50px">風量調節(jié)</span>
    <div style="color:dodgerblue;float: right;font-size: 50px"><span id="title" style="color: black"></span> m3/h</div> <br>
    <div class="ratings_bars">
        <div class="scale" id="bar"> <!-- 軌道灰色背景 -->
            <div id="bgm"></div> <!-- 軌道 -->
            <span id="btn"></span> <!-- 滑塊 -->
        </div>
    </div>
</div><br><br><br><br><br><br>

<button id="button" value="open" onclick="changeSlider()">切換按鈕狀態(tài)</button>   //button切換可調節(jié)和不可調節(jié)狀態(tài)

<script src="slider.js"></script>

</body>
</html>

javascript文件(包含的一些數(shù)字是測量的實際image大小原在,用于計算風量大小友扰、滑塊位置等信息):

var div1 = document.getElementById('btn');
var div2 = document.getElementById('button');
var div3 = document.getElementById('bgm');

function changeSlider() {
    if (div2.value == "close") {
        div1.style.background = "url(images/3.png)";
        div2.value = "open";
        div3.style.backgroundColor = "dodgerblue";
    } else if (div2.value == "open") {
        div1.style.background = "url(images/4.png)";
        div2.value = "close";
        div3.style.backgroundColor = "grey";
    }
}

var num = 10;    //默認初始數(shù)值為10
var num001 = num / 1.6;
var w = document.getElementById('bar').clientWidth;
var www001 = 3000 / w;
var www002 = 3200 / w;

scale = function (btn, bar, title) {
    this.btn = document.getElementById(btn);
    this.bar = document.getElementById(bar);
    this.title = document.getElementById(title);
    this.step = this.bar.getElementsByTagName("DIV")[0];
    this.init();
};


scale.prototype = {
    init: function () {
        var t = this;
        var d = document;

        this.step.style.width = (num001 + www001) + '%'; //進度條初始位置
        this.title.innerHTML = num;//風量數(shù)值
        this.btn.style.left = (num001 - www002)  + '%';//滑塊初始位置


            t.btn.addEventListener('touchstart', function (e) {
                    var touchobj1 = e.changedTouches[0];
                    var x = touchobj1.clientX;
                    var l = this.offsetLeft;
                    var z = t.bar.offsetWidth;


                    d.addEventListener('touchmove', function (e) {
                        if (div2.value == "open") {
                            var touchobj2 = e.changedTouches[0];
                            var thisX = touchobj2.clientX;
                            var to = Math.min(z, Math.max(0, l + 34 + (thisX - x)));
                            t.btn.style.left = to - 34 + 'px';
                            t.ondrag(Math.round(Math.max(0, to / z) * 160), to);
                        } else {
                            return false;
                        }
                    }, false);

                    d.addEventListener('touchend', function (e) {
                        this.touchmove = null;
                    }, false);

            }, false);
    },

    ondrag : function (pos, x) {
        this.step.style.width = Math.max(0, x)  + 'px';
        this.title.innerHTML = pos + '';
    }

};

 new scale('btn', 'bar', 'title');

css文件:

@charset "utf-8";/* CSS Document */
body {
    padding:0;
    background:rgb(235,237,240);
    margin-top: 5%;
    margin-left: 15%;
    margin-right: 15%;
}


.User_ratings .ratings_bars {
    margin-top:10px;
    width: 100%;
    float:left;
}

.User_ratings .ratings_bars .scale {
    width:70%;
    height:34px;
    margin:3% 0 0 0 ;
    position:absolute;
    background-color: #bfbebe;
    box-shadow: 0 1px 1px #def3f8, inset 0 .125em .125em #0d1112,0 0 0 10px #bfbebe;
    background-size: 100% 33px;
    border-radius: 25px;
}

.User_ratings .ratings_bars .scale div {
    position:absolute;
    height:34px;
    background-color: dodgerblue;
    box-shadow: 0 1px 1px #def3f8, inset 0 .125em .125em #0d1112;
    background-size:100% 30px;
    border-radius: 25px;
}

.User_ratings .ratings_bars .scale span {
    width:68px;
    height:68px;
    position:absolute;
    top:-20px;
    cursor:pointer;
    background:url(../images/3.png) no-repeat;
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市庶柿,隨后出現(xiàn)的幾起案子村怪,更是在濱河造成了極大的恐慌,老刑警劉巖浮庐,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件甚负,死亡現(xiàn)場離奇詭異,居然都是意外死亡审残,警方通過查閱死者的電腦和手機梭域,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來维苔,“玉大人碰辅,你說我怎么就攤上這事〗槭保” “怎么了没宾?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長沸柔。 經(jīng)常有香客問我循衰,道長,這世上最難降的妖魔是什么褐澎? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任会钝,我火速辦了婚禮,結果婚禮上工三,老公的妹妹穿的比我還像新娘迁酸。我一直安慰自己,他們只是感情好俭正,可當我...
    茶點故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布奸鬓。 她就那樣靜靜地躺著,像睡著了一般掸读。 火紅的嫁衣襯著肌膚如雪串远。 梳的紋絲不亂的頭發(fā)上宏多,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天,我揣著相機與錄音澡罚,去河邊找鬼伸但。 笑死,一個胖子當著我的面吹牛留搔,可吹牛的內容都是我干的更胖。 我是一名探鬼主播,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼催式,長吁一口氣:“原來是場噩夢啊……” “哼函喉!你這毒婦竟也來了?” 一聲冷哼從身側響起荣月,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤管呵,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后哺窄,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捐下,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年萌业,在試婚紗的時候發(fā)現(xiàn)自己被綠了坷襟。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡生年,死狀恐怖者填,靈堂內的尸體忽然破棺而出端幼,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布铐姚,位于F島的核電站哨颂,受9級特大地震影響祭钉,放射性物質發(fā)生泄漏霸饲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一患亿、第九天 我趴在偏房一處隱蔽的房頂上張望传蹈。 院中可真熱鬧,春花似錦步藕、人聲如沸惦界。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽表锻。三九已至,卻和暖如春乞娄,著一層夾襖步出監(jiān)牢的瞬間瞬逊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工仪或, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留确镊,地道東北人。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓范删,卻偏偏與公主長得像蕾域,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子到旦,可洞房花燭夜當晚...
    茶點故事閱讀 45,500評論 2 359

推薦閱讀更多精彩內容