亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Javascirpt想實現漸變變長的運動效果!

? ? ? ? var navmenu = document.getElementById("header-sidebar");

? ? ? ? if(navmenu.style.width=="")

? ? ? ? {

? ? ? ? ? ? ? var width = (width=0;width<50;width++)

? ? ? ? navmenu.style.width= width + 'px';

? ? ? ? }else{

? ? ? ? ? ? ? var width = (width=50;width>0;width--)

? ? ? ? navmenu.style.width = width + 'px';

? ? ? ? }

麻煩大神幫忙解決,這個怎么實現側邊欄收展的漸變動畫效果?

demo:http://www.wusichao.com/demo/admin_template/

http://img1.sycdn.imooc.com//568513a000013d1911901020.jpg

正在回答

5 回答

這個做的時候主要的麻煩應該就是作用域的問題,剛剛做了下,按照你的描述應該是要這種效果吧

<!--動畫操作對象-->
<div?style="width:?100px;"?id="header">
????<p>這里的內容一出之后就隱藏了</p>
</div>
<input?id="btn"?type="button"?value="變換"/><!--動畫觸發按鈕-->
<style>
????/*做一些必要的樣式*/
????#header?{
????????height:?100px;
????????overflow:?hidden;
????????border:?1px?solid?#f00;
????}
????#header?p{
????????width:?100px;
????}
</style>
//變量初始化
var?btn?=?document.getElementById('btn');
var?navmenu?=?document.getElementById("header");
var?wid?=?navmenu.style.width;
var?timer;
var?speed?=?0;
wid?=?parseInt(wid);

//按鈕點擊觸發事件:
btn.onclick?=?function?()?{
????//判斷點擊之前寬度為100時:
????if?(wid?>=?100)?{
????????speed?=?-5;
????????timer?=?setInterval(animation,?50);//以speed=-5執行動畫函數
????}
????//判斷點擊之前的寬度為30時
????if?(wid?<=?30)?{
????????speed?=?5;
????????timer?=?setInterval(animation,?50);//以speed=5執行動畫函數
????}
};
//動畫函數:
function?animation()?{
????wid?=?wid?+?speed;
????navmenu.style.width?=?wid?+?'px';
????//寬度增加或減少到一定程度時清除定時器,使寬度不再變化
????if?(wid?>=?100?||?wid?<=?30)?{
????????clearInterval(timer);
????}
}


0 回復 有任何疑惑可以回復我~

正是我需要的實現方法,我用JS寫給你看看

? ? ? ? var navmenu = document.getElementById("header-sidebar");

? ? ? ? timer = null;

? ? ? ? if(navmenu.style.width=="")

? ? ? ? {

? ? ?? ? ? ?for(width=0;width>50;width--)

? ? ? ? ? ? timer = setInterval(function() {

? ? ? ? ? ? ? ? navmenu.style.width= width + 'px'; ??

? ? ? ? ? ? ?}, 50); ?

? ? ? ? }else{

? ? ? ? ? ? for(width=50;width<160;width++)

? ? ? ? ? ? timer = setInterval(function() {

? ? ? ? ? ? ? ? navmenu.style.width= width + 'px'; ??

? ? ? ? ? ? ?}, 50);?

? ? ? ? }


0 回復 有任何疑惑可以回復我~

貌似你上面的代碼就是想這樣做的?

0 回復 有任何疑惑可以回復我~
如果用js寫的話,你試試設定一個定時器,給一個時間,讓側邊欄的寬度每次(增加?1px),到一定寬度的時候清除定時器;
同樣的方法,再次點擊時,側邊欄寬度每次(減少?1px);
設置側邊欄溢出隱藏就行了;


可以試試


0 回復 有任何疑惑可以回復我~
#1

吳思超0 提問者

看看下面的新評論
2015-12-31 回復 有任何疑惑可以回復我~

你直接把它的源碼抄過來就好了啊

http://img1.sycdn.imooc.com//5685275a0001556309000906.jpg

0 回復 有任何疑惑可以回復我~
#1

吳思超0 提問者

不是,那是我的作品。。。
2015-12-31 回復 有任何疑惑可以回復我~
#2

吳思超0 提問者 回復 吳思超0 提問者

想實現漸變變長的運動效果!
2015-12-31 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

Javascirpt想實現漸變變長的運動效果!

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號