1.為什么刷新頁面offsetWidth值自己會不斷變化?如果可能的話請把此段代碼運行一下就知道了,刷新的話會自動變?yōu)?00或者0.另外我在實現(xiàn)拖拽功能良好的情況下 增加了點擊滑道 滑塊自動就位的功能,但是出現(xiàn)了兩個事件沖突的現(xiàn)象,請問這個問題該如何解決?
2.頁面代碼
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>ffg</title>
<style type="text/css">
* {
margin: 0;
padding: 0;
}
.box {
width: 800px;
height: 150px;
margin: 50px auto;
background-color: rgb(206, 206, 206);
position: relative;
}
.leftBtn {
float: left;
padding-top: 20px;
}
.leftBtn a {
display: block;
width: 20px;
height: 65px;
background: url(images/bg05.png) no-repeat 0 0;
}
.rightBtn {
float: left;
padding-top: 20px;
}
.rightBtn a {
display: block;
width: 20px;
height: 65px;
background: url(images/bg05.png) no-repeat -40px 0;
}
.imgList {
float: left;
height: 150px;
width: 760px;
overflow: hidden;
position: relative;
}
.m_unit {
width: 1000%;
height: 130px;
position: absolute;
top: 0;
left: 0;
}
.m_unit ul {
list-style: none;
}
.m_unit ul li {
float: left;
margin-right: 10px;
}
.scrollWay {
width: 100%;
height: 20px;
background-color: rgb(66, 66, 66);
position: absolute;
bottom: 0;
}
.scrollBlock {
position: absolute;
left: 0;
top: 2px;
width: 300px;
height: 15px;
/* background-color: red; */
background: url(images/bg07.png) 0 31px;
}
.sBleft {
position: absolute;
top: 0;
left: 0;
width: 11px;
height: 15px;
background: url(images/bg07.png) 0 0;
}
.sBright {
position: absolute;
top: 0;
right: 0;
width: 11px;
height: 15px;
background: url(images/bg07.png) -24px 0;
}
.sBcenter {
position: absolute;
top: 0;
left: 50%;
margin-left: -7px;
width: 14px;
height: 15px;
background: url(images/bg07.png) -46px 0;
}
</style>
</head>
<body>
<div class="box">
<div class="leftBtn" id="leftBtn">
<a href="javascript:;"></a>
</div>
<div class="imgList" id="imgList">
<div class="m_unit" id="m_unit">
<ul>
<li>
<img src="images/0.png" alt="">
</li>
<li>
<img src="images/1.png" alt="">
</li>
<li>
<img src="images/2.png" alt="">
</li>
<li>
<img src="images/3.png" alt="">
</li>
<li>
<img src="images/4.png" alt="">
</li>
<li>
<img src="images/5.png" alt="">
</li>
<li>
<img src="images/6.png" alt="">
</li>
<li>
<img src="images/7.png" alt="">
</li>
<li>
<img src="images/8.png" alt="">
</li>
<li>
<img src="images/9.png" alt="">
</li>
<li>
<img src="images/0.png" alt="">
</li>
</ul>
</div>
<div class="scrollWay" id="scrollWay">
<div class="scrollBlock" id="scrollBlock">
<div class="sBleft"></div>
<div class="sBright"></div>
<div class="sBcenter"></div>
</div>
</div>
</div>
<div class="rightBtn" id="rightBtn">
<a href="javascript:;"></a>
</div>
</div>
<script type="text/javascript">
//首先得到可能要用到各種元素
var scrollBlock = document.getElementById("scrollBlock");
var scrollWay = document.getElementById("scrollWay");
var leftBtn = document.getElementById("leftBtn");
var rightBtn = document.getElementById("rightBtn");
var imgList = document.getElementById("imgList");
var m_unit = document.getElementById("m_unit");
var lis = document.getElementById("m_unit").getElementsByTagName("li");
//計算比率
var rate = imgList.offsetWidth / (210 * lis.length);
console.log("輸入第一個LI的OFFSET值是" + lis[0].offsetWidth);
scrollBlock.style.width = scrollWay.offsetWidth * rate + "px";
//給滑塊添加監(jiān)聽
scrollBlock.onmousedown = function (event) {
event = event || window.event;
//記錄滑塊差值
var Dvalue = event.clientX - scrollBlock.offsetLeft;
//開始移動監(jiān)聽
document.onmousemove = function (event) {
event = event || window.event;
var x = event.clientX - Dvalue;
//驗收
if (x > scrollWay.offsetWidth - scrollBlock.offsetWidth) {
x = scrollWay.offsetWidth - scrollBlock.offsetWidth;
} else if (x < 0) {
x = 0;
}
scrollBlock.style.left = x + "px";
//圖片運動
m_unit.style.left = -x / rate + "px";
//釋放監(jiān)聽
document.onmouseup = function () {
document.onmousemove = null;
}
//阻止默認(rèn)事件
event.preventDefault();
return false;
}
}
//給滑塊添加監(jiān)聽
leftBtn.onclick = function () {
var x = scrollBlock.offsetLeft - 50;
//驗收
if (x > scrollWay.offsetWidth - scrollBlock.offsetWidth) {
x = scrollWay.offsetWidth - scrollBlock.offsetWidth;
} else if (x < 0) {
x = 0;
}
scrollBlock.style.left = x + "px";
m_unit.style.left = -x / rate + "px";
}
rightBtn.onclick = function () {
var x = scrollBlock.offsetLeft + 50;
//驗收
if (x > scrollWay.offsetWidth - scrollBlock.offsetWidth) {
x = scrollWay.offsetWidth - scrollBlock.offsetWidth;
} else if (x < 0) {
x = 0;
}
scrollBlock.style.left = x + "px";
m_unit.style.left = -x / rate + "px";
}
//給滑道添加事件
scrollWay.onclick = function (event) {
event = event || window.event;
//驗收
var msx = event.offsetX;
if (msx > scrollBlock.offsetLeft) {
msx = event.offsetX - scrollBlock.offsetWidth;
} else if (msx < scrollBlock.offsetLeft) {
msx = event.offsetX;
};
scrollBlock.style.left = msx + "px";
m_unit.style.left = -msx / rate + "px";
return false;
}
</script>
</body>
</html>
3.圖片
4.如果有可能煩請大神運行一下 幫忙看下為何會出現(xiàn)兩個事件就會不兼容 有沒有可以解決的方案 萬分感謝!!
window.onload = function() {//放到這里};
document.onmouseup
為什么寫在了 onmousedown里面,并列寫會更合理一點。北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。