"ตรวจสอบ" องค์ประกอบที่วางเมาส์เหนือหรือไม่


106

หมายเหตุ: ฉันอ่านหัวข้อที่คล้ายกัน แต่ไม่มีปัญหาของฉันเลย - ฉันสามารถคลิกขวาที่มันได้ดีจากนั้นก็หายไป

ฉันพบว่า "Inspect Element" เป็นเครื่องมือล้ำค่าใน Chrome อย่างไรก็ตามการจู่โจมครั้งล่าสุดของฉันเมื่อฉันได้เรียนรู้วิธีการใช้เวทมนตร์ที่หลายคนมีอยู่แล้วเห็นว่าฉันสร้างเมนูย่อยสำหรับองค์ประกอบบนแถบนำทางซึ่งจะปรากฏขึ้นด้านล่างเมื่อวางเมาส์เหนือมัน รายการหลัก

ป๊อปอัป (หรือลง) ไม่ค่อยมีสไตล์ที่ฉันต้องการดังนั้นฉันจึงคลิกขวา> ตรวจสอบองค์ประกอบเพื่อดูว่าอะไรมาจากไหนกันแน่และได้รับความคิดที่ดีขึ้นว่าจะบรรลุเอฟเฟกต์ที่ฉันต้องการได้อย่างไร

อย่างไรก็ตามทันทีที่ฉันเลื่อนเมาส์ออกจากเมนูมันก็หายไป

ดังนั้นฉันจึงไม่สามารถเลือกองค์ประกอบที่แตกต่างกันในบานหน้าต่างการตรวจสอบและดูว่าพื้นที่ใดถูกไฮไลต์พร้อมกัน

มีวิธีแก้ปัญหานี้หรือไม่โดยไม่ต้องเปลี่ยนเมนูเพื่อให้ "โผล่ขึ้นมา" เมื่อเปิดใช้งาน


2
ในสถานการณ์เช่นนี้ฉันมักจะใช้คอนโซลเพื่อทำการแก้ไขชั่วคราวในเพจเช่นการลบmouseleaveเหตุการณ์ออกจากเมนูหลัก จากนั้นเมนูย่อยควรยังคงเปิดอยู่แม้ว่าคุณจะเลื่อนเมาส์ออกจากเมนูหลัก
jbabey

Chrome สนับสนุนสิ่งนี้ในขณะนี้ เลือกองค์ประกอบ UI (เช่นแท็ก)> ตรวจสอบองค์ประกอบ> แท็บลักษณะข้างช่องตัวกรองจะมีส่วน ": hov" คลิกเลย ตอนนี้คุณสามารถเลือกช่องทำเครื่องหมายโฮเวอร์และดูว่าสไตล์ใดโหลดเมื่อวางเมาส์เหนือ
Dhanuka777

คำตอบ:


153

หากการวางเมาส์ถูกกระตุ้นโดย JS เพียงแค่หยุดการเรียกใช้สคริปต์ชั่วคราวผ่านแป้นพิมพ์ นี้เป็นมากวิธีที่ง่ายของการแช่แข็ง DOM กว่าคำตอบอื่น ๆ แนะนำ

นี่คือวิธีที่คุณทำใน Chrome ฉันแน่ใจว่า Firefox มีขั้นตอนที่เทียบเท่า:

  1. เปิดเครื่องมือสำหรับนักพัฒนาและไปที่แหล่งที่มา
  2. สังเกตทางลัดเพื่อหยุดการเรียกใช้สคริปต์ชั่วคราวF8-

    หยุดการเรียกใช้สคริปต์ชั่วคราว

  3. โต้ตอบกับ UI เพื่อให้องค์ประกอบปรากฏ

  4. F8hit
  5. ตอนนี้คุณสามารถเลื่อนเมาส์ไปรอบ ๆ ตรวจสอบ DOM ไม่ว่าจะอะไรก็ตาม องค์ประกอบจะอยู่ที่นั่น

3
วิธีการอื่น ๆ ที่นำเสนอที่นี่ใช้ไม่ได้ในหลายบริบทที่เป็นเช่นนี้
Ed Staub

2
น่ากลัว ฉันคิดว่านี่เป็นวิธีที่ดีที่สุด
Varun Mehta

1
สำหรับ Safari เป็นDebuggerแท็บ
user2661518

6
มันไม่ได้ผลสำหรับฉัน หลังจากนั้นF8หน้าจอจะค้างและไม่สามารถเลือกองค์ประกอบใด ๆ ได้ วิธีแก้ปัญหาของฉันคือกดF8สวิตช์ไปที่Elementsแท็บจากนั้นค้นหาคำที่อยู่ในองค์ประกอบโฮเวอร์
AngryHacker

1
ใช้งานได้เหมือนกันบน Firefox แต่คุณต้องมีโฟกัสในแท็บดีบักเกอร์ก่อนที่จะกด F8 (ทางลัดนั้นใช้งานได้จากที่นั่น) เมื่อหยุดชั่วคราวคุณสามารถตรวจสอบ DOM ด้วยองค์ประกอบทั้งหมดที่มีอยู่ในระหว่างสถานะ: โฮเวอร์ที่มีอยู่เท่านั้น เป็นเพียงคำถามเกี่ยวกับการกด F8 ในขณะที่วางเมาส์เหนือองค์ประกอบเพื่อตรวจสอบ หากคุณต้องการเลือกองค์ประกอบอื่นให้พยายามหลีกเลี่ยงเมนูตามบริบทเพื่อตรวจสอบ (สามารถเรียกใช้การยกเลิกการหยุดชั่วคราวได้) ใช้ไอคอนด้านซ้ายบนของ devtool เพื่อจับภาพ
Kir Kanos

73

หากให้เอhoverฟเฟกต์ด้วยCSSใช่ปกติฉันจะใช้สองตัวเลือกเพื่อรับสิ่งนี้:

หนึ่งเพื่อเมื่อเมาส์ออกจาก: เปิดการตรวจสอบในหน้าต่างเชื่อมต่อและเพิ่มความกว้างจนการเข้าถึงของคุณแล้วคลิกขวาและเมนูป๊อปอัพจะต้องมากกว่าโซนสารวัตร ... แล้วเมื่อคุณเลื่อนเมาส์ไปมุมมองการตรวจสอบ ที่เก็บเปิดใช้งานในเอกสารseehover effecthover area
HTML elementhover effect

ป้อนคำอธิบายภาพที่นี่

สองเพื่อแม้ว่าเมาส์ไม่ได้ในช่วงเปิดการตรวจสอบไปที่และคลิกที่ไอคอนด้านขวาบนที่บอกว่า... (สี่เหลี่ยมผืนผ้าจุดที่มีลูกศร) มีคุณสามารถเปิดใช้งาน(ผู้อื่น) กับ ช่องทำเครื่องหมายให้keephover effectHTML elementStyles TABToggle Element StateHover Event

ป้อนคำอธิบายภาพที่นี่

หากยังไม่ชัดเจนโปรดแจ้งให้เราทราบและฉันสามารถเพิ่มภาพหน้าจอบางส่วนได้ แก้ไข : เพิ่มภาพหน้าจอ

และในที่สุดและอย่างที่ฉันพูดในตอนต้นฉันจะทำได้ก็ต่อเมื่อhoverตั้งค่าด้วยCSS:HOVER... เมื่อคุณควบคุมhover stateด้วยjQuery.onMouseOverเช่นใช้งานได้ (บางครั้ง) เท่านั้นวิธีที่หนึ่ง

หวังว่าจะช่วยได้


4
วิธีแก้ปัญหาแรกของคุณเป็นวิธีแก้ปัญหาที่ดีและฉันมีวิธีทำให้ดีขึ้น: คลิกขวาที่องค์ประกอบที่วางเมาส์ไว้เลื่อนเมาส์ไปที่ "เขตผู้ตรวจสอบ" จนสุดจากนั้นไปที่แป้นคีย์บอร์ดแล้วกด Enter ที่ "ตรวจสอบองค์ประกอบ ". องค์ประกอบจะถูกเลื่อนไปเรื่อย ๆ สำหรับวิธีที่สองของคุณใช่ว่า (หรือใช้เมนูบริบท:hover) เห็นได้ชัดว่าเป็นวิธีแก้ปัญหาที่ถูกต้อง แต่น่าเสียดายที่สิ่งนี้ใช้ไม่ได้กับ Chrome / Firefox นานเท่าที่ฉันจำได้ ...
Gilad Barner

ฉันคุ้นเคยกับการทำเช่นนี้ใน Windows แต่ใน Mac เคล็ดลับนี้ใช้ไม่ได้ผลมีใครพบวิธีนี้ใน Mac บ้าง ดูเหมือนว่า "สื่อสาร" เหตุการณ์การย้ายเมาส์ไปที่หน้าต่างแม้ว่าเมาส์จะอยู่ในตัวตรวจสอบหรือเมนูย่อย
ก็ตาม

@GiladBarner ขอบคุณสำหรับทางลัดที่คุณนำเสนอมันใช้งานได้สำหรับฉัน ฉันไม่รู้ว่านี่เป็นปัญหาบนพีซีของฉันหรือไม่ แต่ฉันไม่เห็นตัวเลือกเมนูที่เลือกผ่านแป้นพิมพ์และปุ่มทางลัด (ctrl-shift-I) ไม่ทำงานในขณะที่มองเห็นเมนูแบบเลื่อนลง ดังนั้นเนื่องจากการตรวจสอบองค์ประกอบเป็นตัวเลือกสุดท้ายในเมนูแบบเลื่อนลงฉันจึงใช้ปุ่มลูกศรขึ้นเพื่อล้อมรอบรายการสุดท้ายแล้วกด Enter และมันก็ใช้ได้
Bill Hileman

ดูเหมือนว่าในขณะนี้:hoverตัวเลือกอยู่ใน Toggle Classes Option
Sagnik Pradhan

33

สิ่งที่ได้ผลสำหรับฉันคือการเลือกแท็กเฉพาะที่ฉันต้องการตรวจสอบและทำสิ่งนี้:

ป้อนคำอธิบายภาพที่นี่

หลังจากทำตามข้างต้นแล้วปกติฉันจะเลือกแท็กนั้นอีกครั้งจากนั้นเมนูแบบเลื่อนลงจะยังคงอยู่โดยอัตโนมัติแม้ว่าฉันจะวางเมาส์เหนือไปที่อื่นเช่น Inspect Element เป็นต้น

คุณสามารถรีเฟรชเบราว์เซอร์ได้เมื่อทำการตรวจสอบองค์ประกอบเมนูแบบเลื่อนลงเพื่อกลับสู่สถานะปกติ

หวังว่านี่จะช่วยได้ :)


5
อัจฉริยะ :). สิ่งนี้ช่วยให้สามารถตรวจสอบ hovers ที่เปิดเผยโดยจาวาสคริปต์
ElwoodP

1
มันดีกว่าคำตอบเดิมสำหรับฉัน
วิกเตอร์

14

คุณสามารถทำได้ในคอนโซลจาวาสคริปต์:

$('#foo').trigger('mouseover');

สิ่งที่จะ "หยุด" องค์ประกอบในสถานะ "โฮเวอร์"


7

นี่คือวิธีที่ฉันทำโดยไม่มีการเปลี่ยนแปลง CSS หรือหยุด JS ใน Chrome (ฉันใช้ Mac และไม่มีพีซีอยู่ข้างหน้าฉันหากคุณใช้งาน Win):

  1. เปิดคอนโซลนักพัฒนาซอฟต์แวร์ของคุณ
  2. อย่าเปิดใช้งานเครื่องมือตรวจสอบการวางเมาส์ แต่ให้เปิดเมนูย่อยที่คุณต้องการโดยเลื่อนเมาส์ไปวาง
  3. hit Command+ Shift+ C(Mac) หรือCtrl+ Shift+ C(Win / Linux)

ตอนนี้เครื่องมือตรวจสอบโฮเวอร์จะนำไปใช้กับองค์ประกอบที่คุณเปิดในการนำทางย่อยของคุณ


4

ไม่แน่ใจว่ามีอยู่ในการแก้ไขเบราว์เซอร์ก่อนหน้านี้หรือไม่ แต่ฉันเพิ่งค้นพบวิธีง่ายๆนี้

เปิดตัวตรวจสอบใน chrome หรือ Firefox คลิกขวาที่องค์ประกอบที่คุณสนใจแล้วเลือกตัวเลือกที่เหมาะสม (ในกรณีนี้: hover) สิ่งนี้จะทริกเกอร์ CSS ที่เกี่ยวข้อง

เปิดเมนูด้วยโครเมียม เปิดเมนูเดียวกันใน Firefox

ภาพหน้าจอจาก Firefox 55 และโครเมียม 61


1
น่าเศร้าที่มันใช้ไม่ได้กับสิ่งที่ซับซ้อนใน: องค์ประกอบที่เลื่อนลอย มันทริกเกอร์สถานะคลาสหลอก CSS เท่านั้น เปิดใช้งาน css ที่เกี่ยวข้องอย่างมีประสิทธิภาพ แต่จะไม่ทริกเกอร์เหตุการณ์จาวาสคริปต์ คำถามเดิมกำลังจะสามารถแก้ไขข้อบกพร่องในสถานการณ์ดังกล่าวได้ ดูความคิดเห็นของฉันในคำตอบที่ได้รับการโหวตมากที่สุด (ไม่ใช่คำตอบที่ได้รับการยอมรับ) สำหรับคำแนะนำเพิ่มเติมเกี่ยวกับวิธีดำเนินการใน Chrome และ Firefox
Kir Kanos

2

ของเด็ด!

ขอบคุณ gmo สำหรับคำแนะนำนั้น ฉันไม่รู้ว่าการตั้งค่าแอตทริบิวต์เหล่านั้นมีประโยชน์อย่างมาก

ในการแก้ไขถ้อยคำเล็กน้อยฉันจะอธิบายกระบวนการดังกล่าวดังนี้:

  • คลิกขวาที่องค์ประกอบที่คุณต้องการจัดสไตล์

    • เปิดเครื่องมือ 'ตรวจสอบ'

    • ทางด้านขวามือไปที่แท็บสไตล์ขนาดเล็ก

    • พบด้านบนเนื้อหาสไตล์ชีต CSS

    • เลือกตัวเลือก. ฮอฟ - นี่จะเป็นการตั้งค่าทั้งหมดที่มีให้สำหรับองค์ประกอบ HTML ที่เลือก

    • คลิกและเปลี่ยนตัวเลือกทั้งหมดเพื่อไม่ใช้งาน

    • ตอนนี้เลือกสถานะที่คุณต้องการปรับแต่ง - เมื่อเปิดใช้งานสิ่งเหล่านี้สไตล์ชีตของคุณจะนำคุณไปยังการตั้งค่าเหล่านั้นโดยตรง:

สไตล์ - ปรับแต่งฟิลเตอร์ - องค์ประกอบแบบโต้ตอบ

ข้อมูลนี้ช่วยชีวิตฉันได้ไม่น่าเชื่อว่าเพิ่งเคยได้ยินมา!


นี่เป็นวิธีที่ดีที่สุดสำหรับ Chrome!
ปัด

1
เยี่ยมมากคำตอบของฉันเป็นประโยชน์กับคุณไหม
Dan Haddock

1

ฉันจำเป็นต้องทำสิ่งนี้ แต่องค์ประกอบที่ฉันพยายามตรวจสอบถูกเพิ่มและลบแบบไดนามิกตามสถานะโฮเวอร์ขององค์ประกอบอื่น วิธีแก้ปัญหาของฉันคล้ายกับวิธีนี้แต่ก็ไม่ได้ผลสำหรับฉัน

นี่คือสิ่งที่ฉันทำ:

  1. เพิ่มสคริปต์ง่ายๆเพื่อเข้าสู่โหมดดีบักเกอร์ตามmouseoverองค์ประกอบที่ทริกเกอร์เหตุการณ์โฮเวอร์ที่คุณกังวล
$(document).on('mouseover', '[your-hover-element-selector]', function(e) {
  debugger;
});
  1. จากนั้นเมื่อคอนโซลนักพัฒนาเปิดอยู่ใน Chrome ให้วางเมาส์เหนือองค์ประกอบของคุณแล้วคุณจะเข้าสู่โหมดดีบักเกอร์ ไปที่ส่วนแหล่งที่มาของเครื่องมือ dev และคลิกปุ่ม "ดำเนินการต่อสคริปต์ต่อ" (ปุ่มเหมือนการเล่นสีน้ำเงินด้านล่าง)

ป้อนคำอธิบายภาพที่นี่

เมื่อคุณดำเนินการดังกล่าว DOM ของคุณจะหยุดชั่วคราวในสถานะโฮเวอร์และคุณสามารถใช้ตัวตรวจสอบองค์ประกอบเพื่อตรวจสอบองค์ประกอบทั้งหมดที่มีอยู่ในสถานะนั้น


0

เปลี่ยน CSS เพื่อไม่ให้คุณสมบัติที่ซ่อนเมนูใช้ในขณะที่คุณทำงานกับมันคือสิ่งที่ฉันทำ


โอ้มาตอนที่ฉันพูดโดยเฉพาะโดยไม่ได้ทำการดัดแปลง
OJFord

คุณบอกว่ามันไม่ "ยังคงโผล่ขึ้นมาเมื่อเปิดใช้งาน" ฉันขอแนะนำให้ลบทริกเกอร์การเปิดใช้งานทั้งหมดเพื่อให้มองเห็นได้ตลอดเวลา นั่นคือวิธีที่ฉันทำเมนูป๊อปอัพทั้งหมดไม่เช่นนั้นมันคือโลกแห่งความเจ็บปวด แต่เขี่ยเอง :)
วู้ดดี้
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.