সংক্ষিপ্ত উত্তর:
আমি এটা করেছি। আমি সেখানে সমস্ত অল্প লোকের জন্য গতিশীল ব্যবহারের জন্য একটি ফাংশন লিখেছি ...
পৃষ্ঠায় প্রদর্শিত হয় যা কাজ উদাহরণ
কনসোলে লগিংয়ের উদাহরণ কাজ
দীর্ঘ উত্তর:
... তবুও করেছে।
এটি করতে আমার কিছুটা সময় লেগেছে, যেহেতু কোনও psueo উপাদানটি পৃষ্ঠায় নেই। উপরের উত্তরগুলির কয়েকটি কয়েকটি পরিস্থিতিতে দৃশ্যের সাথে কাজ করে, তারা সমস্তই গতিশীল হতে পারে এবং এমন দৃশ্যে কাজ করতে ব্যর্থ হয় যেখানে কোনও উপাদান আকার এবং পজিশনে উভয়ই অপ্রত্যাশিত (যেমন প্যারেন্ট উপাদানগুলির একটি অংশকে ছাড়িয়ে নিখুঁত অবস্থানযুক্ত উপাদান)। আমার না।
ব্যবহার:
//some element selector and a click event...plain js works here too
$("div").click(function() {
//returns an object {before: true/false, after: true/false}
psuedoClick(this);
//returns true/false
psuedoClick(this).before;
//returns true/false
psuedoClick(this).after;
});
কিভাবে এটা কাজ করে:
এটি প্যারেন্ট এলিমেন্টের উচ্চতা, প্রস্থ, শীর্ষ এবং বাম অবস্থানগুলি (উইন্ডোর প্রান্ত থেকে দূরে অবস্থানের উপর ভিত্তি করে) ধরে এবং উচ্চতা, প্রস্থ, শীর্ষ এবং বাম অবস্থানগুলি ধরে রাখে (মূল পাত্রে প্রান্তের উপর ভিত্তি করে) ) এবং সেই মানগুলি তুলনা করে স্কুইডে এলিউডো উপাদানটি কোথায় রয়েছে তা নির্ধারণ করতে।
এটি তখন মাউসের অবস্থানের সাথে তুলনা করে। যতক্ষণ না মাউস সদ্য নির্মিত ভেরিয়েবলের পরিসীমাতে থাকে ততক্ষণ এটি সত্য হয়ে যায়।
বিঃদ্রঃ:
পিতামাত্ত উপাদানটি আপেক্ষিকভাবে স্থিত করা বুদ্ধিমানের কাজ। আপনার যদি একটি নিখুঁত অবস্থানযুক্ত স্যুয়েডো উপাদান থাকে তবে এই ফাংশনটি কেবল তখনই পিতামাতার মাত্রাগুলির উপর ভিত্তি করে অবস্থান করা হয় (সুতরাং পিতামাতাকে আপেক্ষিক হতে হবে ... সম্ভবত স্টিকি বা স্থির এছাড়াও কাজ করবে .... আমি জানি না)।
কোড:
function psuedoClick(parentElem) {
var beforeClicked,
afterClicked;
var parentLeft = parseInt(parentElem.getBoundingClientRect().left, 10),
parentTop = parseInt(parentElem.getBoundingClientRect().top, 10);
var parentWidth = parseInt(window.getComputedStyle(parentElem).width, 10),
parentHeight = parseInt(window.getComputedStyle(parentElem).height, 10);
var before = window.getComputedStyle(parentElem, ':before');
var beforeStart = parentLeft + (parseInt(before.getPropertyValue("left"), 10)),
beforeEnd = beforeStart + parseInt(before.width, 10);
var beforeYStart = parentTop + (parseInt(before.getPropertyValue("top"), 10)),
beforeYEnd = beforeYStart + parseInt(before.height, 10);
var after = window.getComputedStyle(parentElem, ':after');
var afterStart = parentLeft + (parseInt(after.getPropertyValue("left"), 10)),
afterEnd = afterStart + parseInt(after.width, 10);
var afterYStart = parentTop + (parseInt(after.getPropertyValue("top"), 10)),
afterYEnd = afterYStart + parseInt(after.height, 10);
var mouseX = event.clientX,
mouseY = event.clientY;
beforeClicked = (mouseX >= beforeStart && mouseX <= beforeEnd && mouseY >= beforeYStart && mouseY <= beforeYEnd ? true : false);
afterClicked = (mouseX >= afterStart && mouseX <= afterEnd && mouseY >= afterYStart && mouseY <= afterYEnd ? true : false);
return {
"before" : beforeClicked,
"after" : afterClicked
};
}
সহায়তা:
আমি জানি না .... দেখে মনে হচ্ছে যেমন বোবা এবং মাঝে মাঝে একটি গুণিত মান হিসাবে অটো ফিরতে পছন্দ করে। আইটি সমস্ত ব্রাউজারগুলিতে কাজ করতে দেখায় যদি ডায়মেন্সগুলি সিএসএসে সেট করা থাকে। সুতরাং ... আপনার উচ্চতর এবং প্রস্থকে আপনার প্রিয়চু উপাদানগুলিতে সেট করুন এবং কেবল তাদের উপরের এবং বামে সরান। আমি এগুলিকে এমন জিনিসগুলিতে ব্যবহার করার পরামর্শ দিচ্ছি যাতে এটি কাজ না করে আপনি ঠিক okay একটি অ্যানিমেশন বা কিছু। ক্রোম যথারীতি কাজ করে ...