আমি একটি নতুন কাস্টম তৈরি করেছি: jQuery এর জন্য সিউডো সিলেক্টরটি পরীক্ষা করার জন্য আইটেমের মধ্যে একটি সিএসএস বৈশিষ্ট্য রয়েছে:
- উপচে পড়া: [স্ক্রোল | অটো]
- ওভারফ্লো-এক্স: [স্ক্রোল | অটো]
- ওভারফ্লো-ওয়াই: [স্ক্রোল | অটো]
আমি অন্য একটি উপাদানটির নিকটতম স্ক্রোলযোগ্য পিতামাতার সন্ধান করতে চেয়েছিলাম তাই আমি ওভারফ্লো সহ নিকটতম পিতামাতাকে খুঁজে পেতে আরও একটি ছোট্ট jQuery প্লাগইন লিখেছিলাম।
এই সমাধানটি সম্ভবত সেরাটি সম্পাদন করে না তবে এটি কাজ করে বলে মনে হচ্ছে। আমি এটি sc। স্ক্রোলটো প্লাগইনের সাথে একযোগে ব্যবহার করেছি। কখনও কখনও আমার জানা দরকার যে কোনও উপাদান অন্য স্ক্রোলযোগ্য ধারকটির ভিতরে রয়েছে কিনা। সেক্ষেত্রে আমি উইন্ডো বনাম প্যারেন্ট স্ক্রোলযোগ্য উপাদানটি স্ক্রোল করতে চাই।
আমার সম্ভবত এটি একটি একক প্লাগইনে আবৃত হওয়া উচিত ছিল এবং প্লাগইনের অংশ হিসাবে পিচুয়েডো নির্বাচক যুক্ত করা উচিত, পাশাপাশি নিকটতম (পিতামাতার) স্ক্রোলযোগ্য ধারকটি সন্ধান করার জন্য একটি 'নিকটতম' পদ্ধতিটি প্রকাশ করা উচিত।
যাইহোক .... এখানে।
is .Scrollable jQuery প্লাগইন:
$.fn.isScrollable = function(){
var elem = $(this);
return (
elem.css('overflow') == 'scroll'
|| elem.css('overflow') == 'auto'
|| elem.css('overflow-x') == 'scroll'
|| elem.css('overflow-x') == 'auto'
|| elem.css('overflow-y') == 'scroll'
|| elem.css('overflow-y') == 'auto'
);
};
$ (': স্ক্রোলযোগ্য') jQuery ছদ্ম নির্বাচক:
$.expr[":"].scrollable = function(a) {
var elem = $(a);
return elem.isScrollable();
};
sc। scrollableparent () jQuery প্লাগইন:
$.fn.scrollableparent = function(){
return $(this).closest(':scrollable') || $(window); //default to $('html') instead?
};
বাস্তবায়ন বেশ সহজ
//does a specific element have overflow scroll?
var somedivIsScrollable = $(this).isScrollable();
//use :scrollable psuedo selector to find a collection of child scrollable elements
var scrollableChildren = $(this).find(':scrollable');
//use $.scrollableparent to find closest scrollable container
var scrollableparent = $(this).scrollableparent();
আপডেট: আমি দেখতে পেয়েছি যে রবার্ট করিতনিক ইতিমধ্যে আরও অনেক শক্তিশালী হয়ে উঠেছে: স্ক্রোলযোগ্য সিউডো সিলেক্টর যা স্ক্রোলযোগ্য অক্ষগুলি এবং স্ক্রোলযোগ্য পাত্রে উচ্চতা সনাক্ত করবে, তার sc। স্ক্রোলিনটোভিউ () jQuery প্লাগইনের অংশ হিসাবে। স্ক্রোলিনটোভিউ প্লাগইন
এখানে তাঁর অভিনব ছদ্ম নির্বাচক (প্রপস):
$.extend($.expr[":"], {
scrollable: function (element, index, meta, stack) {
var direction = converter[typeof (meta[3]) === "string" && meta[3].toLowerCase()] || converter.both;
var styles = (document.defaultView && document.defaultView.getComputedStyle ? document.defaultView.getComputedStyle(element, null) : element.currentStyle);
var overflow = {
x: scrollValue[styles.overflowX.toLowerCase()] || false,
y: scrollValue[styles.overflowY.toLowerCase()] || false,
isRoot: rootrx.test(element.nodeName)
};
// check if completely unscrollable (exclude HTML element because it's special)
if (!overflow.x && !overflow.y && !overflow.isRoot)
{
return false;
}
var size = {
height: {
scroll: element.scrollHeight,
client: element.clientHeight
},
width: {
scroll: element.scrollWidth,
client: element.clientWidth
},
// check overflow.x/y because iPad (and possibly other tablets) don't dislay scrollbars
scrollableX: function () {
return (overflow.x || overflow.isRoot) && this.width.scroll > this.width.client;
},
scrollableY: function () {
return (overflow.y || overflow.isRoot) && this.height.scroll > this.height.client;
}
};
return direction.y && size.scrollableY() || direction.x && size.scrollableX();
}
});
> this.innerHeight();
jsfiddle.net/p3FFL/210