[問題] 手機版的選單在電腦版還留著 求解(附P幣)消失

看板Web_Design作者時間7年前 (2018/08/18 18:11), 7年前編輯推噓4(4018)
留言22則, 6人參與, 最新討論串1/1
簡單來說就是在手機板時候開啟選單 https://i.imgur.com/52potAK.png
但此時視窗往外拉 造裡說 應該選單會消失 但似乎還留著HTML的文字 https://i.imgur.com/XGTgrSH.png
雖然再點一下 就會消失(因為手機板的選單 點旁邊會消失) 但這不是我要的RR~~~ 當然是希望手機板的選單 在電腦版的視窗可以直接消失 但是我打display:none 似乎沒用 只能把CSS清除 但HTML卻莫名留著 codepen的連結: https://codepen.io/WeiLin/pen/QBeXgY 懇請高手解惑 確定解決的第一位朋友附上888P幣回報 祝你發發發 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.204.241.65 ※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1534587067.A.28A.html

08/18 19:03, , 1F
開f12看阿 這裡的display:none被蓋過了
08/18 19:03, 1F

08/18 20:04, , 2F
因為你用jquery的fadeToggle()他會在html裡加入inline styl
08/18 20:04, 2F

08/18 20:04, , 3F
e=“display:block”他的權域高於css所以會顯示block 你可
08/18 20:04, 3F

08/18 20:04, , 4F
以用更高權域的!important去覆蓋inline style
08/18 20:04, 4F

08/18 20:05, , 5F
改成#phone_menu{ display: none !important }
08/18 20:05, 5F
可是如此一來 連手機版的視窗尺寸也無法開啟了 就算我多寫一個大於1200時 的media 然後把#phone_menu{ display: none !important } 放進去 似乎還是會殘留

08/18 20:09, , 6F
最好還是自己寫class去處理動畫
08/18 20:09, 6F
可以比較詳細一點的解說嗎 有點似懂非懂的意思 感恩不盡

08/19 02:23, , 7F
toggleClass
08/19 02:23, 7F

08/19 02:47, , 8F
這個還是會發生一樣的問題

08/19 09:35, , 9F
監聽resize事件,視窗寬大於時fadeout()
08/19 09:35, 9F
https://codepen.io/WeiLin/pen/QBeXgY?editors=1010 我在後面加了這段 $(window).resize(function() { if($(window).width()>1000){ $("#phone_menu").hide(); } }); 不過html的殘留碼還是會先出現 再瞬間消失 後來改成 width()>800 就不會了 不過感覺還是怪怪的^^" 這樣是正確的寫法嗎?

08/19 13:30, , 10F

08/19 13:34, , 11F
.active添加media屬性 小於npx時才顯示 樣式的東西還是交
08/19 13:34, 11F

08/19 13:34, , 12F
給css處理 建議讓js只負責邏輯運算和交互動態
08/19 13:34, 12F

08/19 15:20, , 13F
因為fadeToggle是加style的display屬性在標籤內,會蓋
08/19 15:20, 13F

08/19 15:20, , 14F
掉CSS。所以用jQ動畫的話就得寫在JS裡。也可以改用CSS
08/19 15:20, 14F

08/19 15:20, , 15F
寫動畫,用CSS管控樣式。
08/19 15:20, 15F

08/19 15:24, , 16F
BTW你CSS斷點是設在980px,所以width>1000時才會有閃
08/19 15:24, 16F

08/19 15:24, , 17F
一下的問題。假如得寫在JS的話,CSS和JS兩邊斷點要確
08/19 15:24, 17F

08/19 15:24, , 18F
保相同(你的case是980px)
08/19 15:24, 18F
最後我還是這樣寫啦 $(window).resize(function() { if($(window).width()>950){ $("#phone_menu").hide(); $(".menu-trigger").removeClass('active'); } }) 謝謝 附上p幣

08/20 12:13, , 19F
css用media screen設定指定最小(大)寬度,就不用寫js囉
08/20 12:13, 19F
沒辦法 如果用jq動畫 就如同上面說的 會在html多一個 display:block 會蓋過你CSS寫的 ※ 編輯: gdyoungboy12 (59.124.246.217), 08/21/2018 10:22:58

08/25 16:09, , 20F
當按下按鈕時觸發js的click事件,並用js增添顯示選單
08/25 16:09, 20F

08/25 16:09, , 21F
的class,此時加入media screen來讓css判斷menu是否
08/25 16:09, 21F

08/25 16:09, , 22F
該在這視窗的size下顯示
08/25 16:09, 22F
文章代碼(AID): #1RT_2xAA (Web_Design)