এটা একটি উপাদান দৃশ্যমানতা টগল ফাংশন ব্যবহার করে কি সম্ভব .hide()
, .show()
অথবা .toggle()
?
একটি উপাদান visible
বা আপনি যদি পরীক্ষা করবেন hidden
?
এটা একটি উপাদান দৃশ্যমানতা টগল ফাংশন ব্যবহার করে কি সম্ভব .hide()
, .show()
অথবা .toggle()
?
একটি উপাদান visible
বা আপনি যদি পরীক্ষা করবেন hidden
?
উত্তর:
যেহেতু প্রশ্নটি একটি একক উপাদানকে বোঝায় তাই এই কোডটি আরও উপযুক্ত হতে পারে:
// Checks CSS content for display:[none|block], ignores visibility:[true|false]
$(element).is(":visible");
// The same works with hidden
$(element).is(":hidden");
এটি টওয়ারেন্টের পরামর্শের মতো , তবে এটি একটি একক উপাদানের জন্য প্রয়োগ; এবং এটি jQuery FAQ এ প্রস্তাবিত অ্যালগরিদমের সাথে মেলে ।
আমরা নির্বাচিত উপাদানটিকে অন্য উপাদান, নির্বাচক বা কোনও jQuery অবজেক্টের সাথে পরীক্ষা করতে jQuery এর () ব্যবহার করি। এই পদ্ধতিটি ডিওএম উপাদানগুলির সাথে কোনও মিল খুঁজে বের করে, যা উত্তীর্ণ প্যারামিটারকে সন্তুষ্ট করে। কোনও মিল থাকলে এটি সত্য হবে, অন্যথায় মিথ্যা ফিরে আসবে।
visible=false
এবং display:none
; যদিও মোটের সমাধানটি কোডারদের চেক করার জন্য অভিপ্রায়গুলি পরিষ্কারভাবে প্রকাশ করে display:none
; (আড়াল করে উল্লেখ করুন যা নিয়ন্ত্রণ করে display:none
না visible=true
)
:visible
চিবর্গের নির্দেশ অনুসারে অভিভাবক উপাদানগুলি দৃশ্যমান কিনা তাও পরীক্ষা করবে will
display
সম্পত্তিটির জন্য পরীক্ষা করে । দেওয়া হল যে মূল প্রশ্নটি হল show()
এবং hide()
এবং তারা সেট করেছে display
, আমার উত্তরটি সঠিক। যাইহোক এটি আই 7 এর সাথে কাজ করে, এখানে একটি পরীক্ষার স্নিপেট রয়েছে - jsfiddle.net/MWZss ;
আপনি hidden
নির্বাচক ব্যবহার করতে পারেন :
// Matches all elements that are hidden
$('element:hidden')
এবং visible
নির্বাচক:
// Matches all elements that are visible
$('element:visible')
type="hidden"
হ'ল কেবল একটি ক্ষেত্রে যা ট্রিগার করতে পারে: লুকানো। উচ্চতা এবং প্রস্থবিহীন উপাদানগুলি সহ display: none
উপাদানগুলি এবং লুকানো পূর্বপুরুষের উপাদানগুলিও এগুলি হিসাবে যোগ্যতা অর্জন করবে: লুকানো।
if ( $(element).css('display') == 'none' || $(element).css("visibility") == "hidden"){
// 'element' is hidden
}
উপরের পদ্ধতিটি পিতামাতার দৃশ্যমানতা বিবেচনা করে না। অভিভাবকদের পাশাপাশি বিবেচনা করার জন্য, আপনার ব্যবহার করা উচিত .is(":hidden")
বা .is(":visible")
।
উদাহরণ স্বরূপ,
<div id="div1" style="display:none">
<div id="div2" style="display:block">Div2</div>
</div>
উপরে পদ্ধতি বিবেচনা করব
div2
প্রোফাইল যখন:visible
না। তবে উপরেরটি অনেক ক্ষেত্রে কার্যকর হতে পারে, বিশেষত যখন আপনার লুকানো পিতামাতার মধ্যে কোনও ত্রুটি বিভাজন দৃশ্যমান আছে কিনা তা খুঁজে বের করতে হবে কারণ এই ধরনের পরিস্থিতিতে:visible
কাজ করবে না।
hide()
, show()
এবং toggle()
ফাংশন, তবে সবচেয়ে ইতিমধ্যে বলেন, আমরা ব্যবহার করা উচিত :visible
এবং :hidden
সিউডো-ক্লাস।
এই উত্তরগুলির মধ্যে কোনটিই আমি যে প্রশ্নটি হয়েছি তা বোঝায় না, যা আমি অনুসন্ধান করেছিলাম, "আমি কীভাবে আইটেমগুলি পরিচালনা করব visibility: hidden
?" । আমরাও :visible
না :hidden
তারা উভয় ডকুমেন্টেশন প্রতি প্রদর্শনের জন্য খুঁজছি হয়, এই সব ব্যবস্থা হবে। আমি যতদূর নির্ধারণ করতে পারি, সিএসএস দৃশ্যমানতা হ্যান্ডেল করার জন্য কোনও নির্বাচক নেই। আমি এখানে এটি কীভাবে সমাধান করেছি (মানক jQuery নির্বাচক, আরও ঘনীভূত বাক্য গঠন থাকতে পারে):
$(".item").each(function() {
if ($(this).css("visibility") == "hidden") {
// handle non visible state
} else {
// handle visible state
}
});
visibility
আক্ষরিকভাবে পরিচালনা করা ভাল তবে প্রশ্নটি ছিল How you would test if an element has been hidden or shown using jQuery?
। JQuery ব্যবহারের অর্থ: display
সম্পত্তি।
visibility: hidden
বা opacity: 0
এর সাথে উপাদানগুলি দৃশ্যমান বলে বিবেচিত হয়, যেহেতু তারা এখনও লেআউটে স্থান গ্রহণ করে। দেখুন দ্বারা উত্তর পেড্রো Rainho এবং jQuery এর ডকুমেন্টেশন উপর :visible
নির্বাচক।
থেকে আমি কিভাবে টগল উপাদান রাজ্যের নির্ধারণ করব?
আপনি :visible
এবং :hidden
নির্বাচকগুলি ব্যবহার করে কোনও উপাদান ধসে পড়েছে কিনা তা আপনি নির্ধারণ করতে পারেন ।
var isVisible = $('#myDiv').is(':visible');
var isHidden = $('#myDiv').is(':hidden');
যদি আপনি কেবল কোনও উপাদানের দৃশ্যমানতার ভিত্তিতে অভিনয় করে থাকেন তবে আপনি কেবল :visible
বা :hidden
নির্বাচক প্রকাশে অন্তর্ভুক্ত করতে পারেন । উদাহরণ স্বরূপ:
$('#myDiv:visible').animate({left: '+=200px'}, 'slow');
top:-1000px
... যেমন অনুমান করুন এটি একটি কিনারা-কেস
প্রায়শই কিছু দৃশ্যমান আছে কি না তা যাচাই করার সময় আপনি তত্ক্ষণাত্ এগিয়ে যাবেন এবং এর সাথে অন্য কিছু করতে যাচ্ছেন। jQuery চেইন এটিকে সহজ করে তোলে।
সুতরাং আপনার যদি কোনও নির্বাচক থাকে এবং আপনি দৃশ্যমান বা লুকানো থাকে তবেই আপনি এটিতে কিছু পদক্ষেপ নিতে চান, আপনি ব্যবহার করতে পারেন filter(":visible")
বাfilter(":hidden")
নিতে চান, আপনি যে পদক্ষেপ নিতে চান তা দিয়ে শৃঙ্খলাবদ্ধ করে অনুসরণ করতে পারেন।
সুতরাং if
এই মত একটি বিবৃতি পরিবর্তে :
if ($('#btnUpdate').is(":visible"))
{
$('#btnUpdate').animate({ width: "toggle" }); // Hide button
}
বা আরও দক্ষ, কিন্তু এমনকি খারাপ:
var button = $('#btnUpdate');
if (button.is(":visible"))
{
button.animate({ width: "toggle" }); // Hide button
}
আপনি এটি এক লাইনে সব করতে পারেন:
$('#btnUpdate').filter(":visible").animate({ width: "toggle" });
:visible
নির্বাচক অনুযায়ী jQuery এর ডকুমেন্টেশন :
- তাদের একটি সিএসএস
display
মান রয়েছেnone
।- তারা সঙ্গে ফর্ম উপাদান
type="hidden"
।- তাদের প্রস্থ এবং উচ্চতা সুস্পষ্টভাবে 0 এ সেট করা আছে।
- একটি পূর্বপুরুষের উপাদান লুকানো আছে, সুতরাং উপাদানটি পৃষ্ঠায় প্রদর্শিত হয় না।
এগুলির সাথে
visibility: hidden
বাopacity: 0
এর সাথে উপাদানগুলি দৃশ্যমান বলে বিবেচিত হয়, যেহেতু তারা এখনও লেআউটে স্থান গ্রহণ করে।
এটি কিছু ক্ষেত্রে কার্যকর এবং অন্যদের ক্ষেত্রে অকেজো, কারণ আপনি যদি display != none
পিতামাতার দৃশ্যমানতা উপেক্ষা করে উপাদানটি দৃশ্যমান কিনা ( ) তা পরীক্ষা করতে চান তবে আপনি দেখতে পাবেন যে এটি করা .css("display") == 'none'
কেবলমাত্র দ্রুত নয়, তবে দৃশ্যমানতার চেকটিও সঠিকভাবে ফিরে আসবে।
আপনি প্রদর্শনের পরিবর্তে দৃশ্যমানতা চেক করতে চান, আপনি ব্যবহার করা উচিত: .css("visibility") == "hidden"
।
অতিরিক্ত jQuery নোটগুলিও বিবেচনা করুন :
যেহেতু
:visible
একটি jQuery এক্সটেনশন এবং CSS স্পেসিফিকেশনের অংশ নয়, এর সাহায্যে অনুসন্ধানগুলি:visible
দেশীয় DOMquerySelectorAll()
পদ্ধতি দ্বারা সরবরাহিত পারফরম্যান্স বৃদ্ধির সুবিধা নিতে পারে না ।:visible
উপাদান নির্বাচন করার সময় সর্বোত্তম কর্মক্ষমতা অর্জন করতে প্রথমে খাঁটি সিএসএস নির্বাচক ব্যবহার করে উপাদান নির্বাচন করুন, তারপরে ব্যবহার করুন.filter(":visible")
।
এছাড়াও, আপনি যদি পারফরম্যান্স সম্পর্কে উদ্বিগ্ন হন তবে আপনার এখন পরীক্ষা করা উচিত আমাকে দেখতে পাবেন ... প্রদর্শন / লুকিয়ে রাখুন পারফরম্যান্স (2010-05-04)। এবং উপাদানগুলি দেখানোর জন্য এবং লুকানোর জন্য অন্যান্য পদ্ধতিগুলি ব্যবহার করুন।
কীভাবে উপাদানটির দৃশ্যমানতা এবং jQuery কাজ করে ;
একটি উপাদান সঙ্গে লুকানো হতে পারে display:none
, visibility:hidden
বা opacity:0
। এই পদ্ধতির মধ্যে পার্থক্য:
display:none
উপাদানটি গোপন করে এবং এটি কোনও স্থান গ্রহণ করে না;visibility:hidden
উপাদানটি লুকিয়ে রাখে, তবে এটি এখনও লেআউটে স্থান নেয়;opacity:0
উপাদানটি "দৃশ্যমানতা: লুকানো" হিসাবে লুকিয়ে রাখে এবং এটি এখনও লেআউটে স্থান নেয়; পার্থক্যটি হ'ল অস্বচ্ছতা একটি উপাদানকে আংশিক স্বচ্ছ করতে দেয়;
if ($('.target').is(':hidden')) {
$('.target').show();
} else {
$('.target').hide();
}
if ($('.target').is(':visible')) {
$('.target').hide();
} else {
$('.target').show();
}
if ($('.target-visibility').css('visibility') == 'hidden') {
$('.target-visibility').css({
visibility: "visible",
display: ""
});
} else {
$('.target-visibility').css({
visibility: "hidden",
display: ""
});
}
if ($('.target-visibility').css('opacity') == "0") {
$('.target-visibility').css({
opacity: "1",
display: ""
});
} else {
$('.target-visibility').css({
opacity: "0",
display: ""
});
}
দরকারী jQuery টগল পদ্ধতি:
$('.click').click(function() {
$('.target').toggle();
});
$('.click').click(function() {
$('.target').slideToggle();
});
$('.click').click(function() {
$('.target').fadeToggle();
});
visibility:hidden
এবং এর মধ্যে আরেকটি পার্থক্য opacity:0
হ'ল উপাদানটি এখনও ইভেন্টগুলির সাথে প্রতিক্রিয়া জানাবে (ক্লিকের মতো) opacity:0
। ফাইল আপলোডগুলির জন্য কাস্টম বোতাম তৈরি করার কৌশলটি আমি শিখেছি।
আপনি সরল জাভাস্ক্রিপ্ট ব্যবহার করে এটি করতে পারেন:
function isRendered(domObj) {
if ((domObj.nodeType != 1) || (domObj == document.body)) {
return true;
}
if (domObj.currentStyle && domObj.currentStyle["display"] != "none" && domObj.currentStyle["visibility"] != "hidden") {
return isRendered(domObj.parentNode);
} else if (window.getComputedStyle) {
var cs = document.defaultView.getComputedStyle(domObj, null);
if (cs.getPropertyValue("display") != "none" && cs.getPropertyValue("visibility") != "hidden") {
return isRendered(domObj.parentNode);
}
}
return false;
}
মন্তব্য:
সর্বত্র কাজ করে
নেস্টেড উপাদানগুলির জন্য কাজ করে
সিএসএস এবং ইনলাইন শৈলীর জন্য কাজ করে
কাঠামোর দরকার হয় না
visibility: hidden
করে ।
আমি সিএসএস ক্লাস ব্যবহার করব .hide { display: none!important; }
।
লুকিয়ে / দেখানোর জন্য, আমি কল করি .addClass("hide")/.removeClass("hide")
। দৃশ্যমানতা যাচাই করার জন্য, আমি ব্যবহার করি.hasClass("hide")
।
যদি আপনি ব্যবহার .toggle()
বা .animate()
পদ্ধতি ব্যবহার না করেন তবে এটি উপাদানগুলি চেক / আড়াল / প্রদর্শন করার একটি সহজ এবং স্পষ্ট উপায় ।
.hasClass('hide')
পিতামাতার কোনও পূর্বপুরুষ লুকিয়ে আছে কিনা তা পরীক্ষা করে না (যা এটি লুকিয়ে রাখে)। আপনি সম্ভবত এটি পরীক্ষা করে সঠিকভাবে কাজ করতে পারেন .closest('.hide').length > 0
তবে চাকাটি পুনরায় উদ্ভাবন করবেন কেন?
$('#clickme').click(function() {
$('#book').toggle('slow', function() {
// Animation complete.
alert($('#book').is(":visible")); //<--- TRUE if Visible False if Hidden
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="clickme">
Click here
</div>
<img id="book" src="https://upload.wikimedia.org/wikipedia/commons/8/87/Google_Chrome_icon_%282011%29.png" alt="" width="300"/>
সূত্র:
আপনার আর একটি উত্তর বিবেচনা করা উচিত যা আপনি যদি কোনও উপাদান লুকিয়ে রাখেন তবে আপনার jQuery ব্যবহার করা উচিত তবে এটি সম্পূর্ণরূপে আড়াল করার পরিবর্তে আপনি পুরো উপাদানটি সরিয়ে ফেলেন, তবে আপনি এর HTML বিষয়বস্তু এবং ট্যাগটি নিজেই একটি জিকুয়েরি ভেরিয়েবলের অনুলিপি করেছেন এবং তারপরে আপনার যা যা করা দরকার তা হ'ল সাধারণ ব্যবহার করে স্ক্রিনে যদি এমন ট্যাগ থাকে তবে তা পরীক্ষা করা দরকার if (!$('#thetagname').length)
।
:hidden
জিকুয়ারিতে নির্বাচকদের বিরুদ্ধে কোনও উপাদান পরীক্ষা করার সময় এটি বিবেচনা করা উচিত যে তাদের সন্তানের উপাদানগুলি দৃশ্যমান হলেও একটি নিখুঁত অবস্থানযুক্ত উপাদানটি লুকানো হিসাবে স্বীকৃত হতে পারে ।
এটি প্রথম স্থানে কিছুটা স্ব-স্বজ্ঞাত বলে মনে হচ্ছে - যদিও jQuery ডকুমেন্টেশনটি ঘনিষ্ঠভাবে পর্যালোচনা করা প্রাসঙ্গিক তথ্য দেয়:
উপাদানগুলি বেশ কয়েকটি কারণে লুকানো হিসাবে বিবেচনা করা যেতে পারে: [...] তাদের প্রস্থ এবং উচ্চতা সুস্পষ্টভাবে 0 এ সেট করা হয়েছে। [...]
সুতরাং এটি আসলে বাক্স-মডেল এবং উপাদানটির জন্য গণিত শৈলীর ক্ষেত্রে অর্থবোধ করে। এমনকি যদি প্রস্থ ও উচ্চতা সেট নেই স্পষ্টভাবে 0 তারা সেট করা হতে পারে পরোক্ষভাবে ।
নিম্নলিখিত উদাহরণটি দেখুন:
console.log($('.foo').is(':hidden')); // true
console.log($('.bar').is(':hidden')); // false
.foo {
position: absolute;
left: 10px;
top: 10px;
background: #ff0000;
}
.bar {
position: absolute;
left: 10px;
top: 10px;
width: 20px;
height: 20px;
background: #0000ff;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="foo">
<div class="bar"></div>
</div>
JQuery 3.x এর জন্য আপডেট:
JQuery 3 এর সাথে বর্ণিত আচরণ বদলে যাবে! শূন্য প্রস্থ এবং / বা উচ্চতা সহ কোনও লেআউট বাক্স থাকলে উপাদানগুলি দৃশ্যমান হিসাবে বিবেচিত হবে।
JQuery 3.0.0-alpha1 সহ জেএসফিডাল:
একই জাভাস্ক্রিপ্ট কোডটির পরে এই আউটপুটটি থাকবে:
console.log($('.foo').is(':hidden')); // false
console.log($('.bar').is(':hidden')); // false
এটি কাজ করতে পারে:
expect($("#message_div").css("display")).toBe("none");
উদাহরণ:
$(document).ready(function() {
if ($("#checkme:hidden").length) {
console.log('Hidden');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="checkme" class="product" style="display:none">
<span class="itemlist"><!-- Shows Results for Fish --></span> Category:Fish
<br>Product: Salmon Atlantic
<br>Specie: Salmo salar
<br>Form: Steaks
</div>
এটি দৃশ্যমান নয় কিনা তা পরীক্ষা করার জন্য আমি ব্যবহার করি !
:
if ( !$('#book').is(':visible')) {
alert('#book is not visible')
}
অথবা নিম্নলিখিতটি স্যামও রয়েছে, যখন আপনার একাধিকবার প্রয়োজন হয় তখন আরও ভাল পারফরম্যান্সের জন্য jQuery নির্বাচককে একটি ভেরিয়েবলে সংরক্ষণ করে:
var $book = $('#book')
if(!$book.is(':visible')) {
alert('#book is not visible')
}
"লুকানোর" উপাদানগুলির জন্য মনোনীত শ্রেণিগুলি ব্যবহার করা সহজ এবং সবচেয়ে দক্ষ পদ্ধতিগুলির মধ্যে একটি। কোনও Display
শৈলীর সাথে 'লুকানো' শ্রেণিতে টগল করা ' স্টাইল' সরাসরি সম্পাদনা করার চেয়ে দ্রুত সঞ্চালন করবে। স্ট্যাক ওভারফ্লো প্রশ্নে আমি এর বেশ কয়েকটি পুরোপুরিভাবে ব্যাখ্যা করলাম একই উপাদানটিতে দুটি উপাদান দৃশ্যমান / লুকানো রয়েছে ।
গুগলের ফ্রন্ট-এন্ড ইঞ্জিনিয়ার নিকোলাস জাকাসের গুগল টেক টকের একটি সত্যিকারের আলোকিত ভিডিও এখানে:
অ্যাডব্লকারের জন্য দৃশ্যমান চেকটি ব্যবহারের উদাহরণ সক্রিয় করা হয়েছে:
$(document).ready(function(){
if(!$("#ablockercheck").is(":visible"))
$("#ablockermsg").text("Please disable adblocker.").show();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="ad-placement" id="ablockercheck"></div>
<div id="ablockermsg" style="display: none"></div>
"অ্যাবলোকেরেক" একটি আইডি যা অ্যাডব্লককারীকে অবরুদ্ধ করে। সুতরাং এটি যদি দৃশ্যমান হয় তা পরীক্ষা করে দেখানো হচ্ছে যে আপনি অ্যাডব্লবারটি চালু আছে কিনা তা সনাক্ত করতে সক্ষম।
সর্বোপরি, উদাহরণগুলির কোনওটিই আমার পক্ষে উপযুক্ত নয়, তাই আমি নিজের লেখা own
পরীক্ষা (ইন্টারনেট এক্সপ্লোরার সমর্থন নেই)filter:alpha
):
ক) নথিটি গোপন না রয়েছে কিনা তা পরীক্ষা করে দেখুন
খ) কোনও উপাদানটির শূন্য প্রস্থ / উচ্চতা / অস্বচ্ছতা বা display:none
/visibility:hidden
ইনলাইন স্টাইল
গ) উপাদানটি কেন্দ্রের (প্রতিটি পিক্সেল / কোণার পরীক্ষার চেয়ে দ্রুততর কারণ) অন্যান্য উপাদান (এবং সমস্ত পূর্বপুরুষদের দ্বারা গোপন নেই) তা পরীক্ষা করে দেখুন: overflow:hidden
/ স্ক্রোল / অন্যটির উপরে একটি উপাদান)
d) কোনও উপাদানের শূন্য প্রস্থ / উচ্চতা / অস্বচ্ছতা বা display:none
/ দৃশ্যমানতা আছে কিনা তা পরীক্ষা করুন : গণিত শৈলীতে লুকানো (সমস্ত পূর্বপুরুষের মধ্যে)
পরীক্ষিত
অ্যান্ড্রয়েড ৪.৪ (নেটিভ ব্রাউজার / ক্রোম / ফায়ারফক্স), ফায়ারফক্স (উইন্ডোজ / ম্যাক), ক্রোম (উইন্ডোজ / ম্যাক), অপেরা (উইন্ডোজ প্রেস্টো / ম্যাক ওয়েবকিট), ইন্টারনেট এক্সপ্লোরার (ইন্টারনেট এক্সপ্লোরার 5-11 নথি মোড + ইন্টারনেট এক্সপ্লোরার 8 ভার্চুয়াল মেশিন), এবং সাফারি (উইন্ডোজ / ম্যাক / আইওএস)।
var is_visible = (function () {
var x = window.pageXOffset ? window.pageXOffset + window.innerWidth - 1 : 0,
y = window.pageYOffset ? window.pageYOffset + window.innerHeight - 1 : 0,
relative = !!((!x && !y) || !document.elementFromPoint(x, y));
function inside(child, parent) {
while(child){
if (child === parent) return true;
child = child.parentNode;
}
return false;
};
return function (elem) {
if (
document.hidden ||
elem.offsetWidth==0 ||
elem.offsetHeight==0 ||
elem.style.visibility=='hidden' ||
elem.style.display=='none' ||
elem.style.opacity===0
) return false;
var rect = elem.getBoundingClientRect();
if (relative) {
if (!inside(document.elementFromPoint(rect.left + elem.offsetWidth/2, rect.top + elem.offsetHeight/2),elem)) return false;
} else if (
!inside(document.elementFromPoint(rect.left + elem.offsetWidth/2 + window.pageXOffset, rect.top + elem.offsetHeight/2 + window.pageYOffset), elem) ||
(
rect.top + elem.offsetHeight/2 < 0 ||
rect.left + elem.offsetWidth/2 < 0 ||
rect.bottom - elem.offsetHeight/2 > (window.innerHeight || document.documentElement.clientHeight) ||
rect.right - elem.offsetWidth/2 > (window.innerWidth || document.documentElement.clientWidth)
)
) return false;
if (window.getComputedStyle || elem.currentStyle) {
var el = elem,
comp = null;
while (el) {
if (el === document) {break;} else if(!el.parentNode) return false;
comp = window.getComputedStyle ? window.getComputedStyle(el, null) : el.currentStyle;
if (comp && (comp.visibility=='hidden' || comp.display == 'none' || (typeof comp.opacity !=='undefined' && comp.opacity != 1))) return false;
el = el.parentNode;
}
}
return true;
}
})();
ব্যবহারবিধি:
is_visible(elem) // boolean
আপনার উভয় পরীক্ষা করা দরকার ... প্রদর্শনের পাশাপাশি দৃশ্যমানতা:
if ($(this).css("display") == "none" || $(this).css("visibility") == "hidden") {
// The element is not visible
} else {
// The element is visible
}
আমরা যদি পরীক্ষা করে দেখি $(this).is(":visible")
, jQuery দুটি জিনিস স্বয়ংক্রিয়ভাবে চেক করে।
হতে পারে আপনি এরকম কিছু করতে পারেন
$(document).ready(function() {
var visible = $('#tElement').is(':visible');
if(visible) {
alert("visible");
// Code
}
else
{
alert("hidden");
}
});
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<input type="text" id="tElement" style="display:block;">Firstname</input>
কেবল বুলিয়ান মান পরীক্ষা করে দৃশ্যমানতা পরীক্ষা করুন, যেমন:
if (this.hidden === false) {
// Your code
}
আমি প্রতিটি ফাংশনের জন্য এই কোডটি ব্যবহার করেছি। অন্যথায় আপনি is(':visible')
কোনও উপাদানটির দৃশ্যমানতা পরীক্ষা করার জন্য ব্যবহার করতে পারেন ।
কারণ Elements with visibility: hidden or opacity: 0 are considered visible, since they still consume space in the layout
( jQuery: দৃশ্যমান নির্বাচক হিসাবে বর্ণিত ) - আমরা উপাদানটি এইভাবে দৃশ্যমান কিনা তা পরীক্ষা করতে পারি :
function isElementReallyHidden (el) {
return $(el).is(":hidden") || $(el).css("visibility") == "hidden" || $(el).css('opacity') == 0;
}
var booElementReallyShowed = !isElementReallyHidden(someEl);
$(someEl).parents().each(function () {
if (isElementReallyHidden(this)) {
booElementReallyShowed = false;
}
});
কিন্তু যদি এলিমেন্টের সিএসএস নীচের মত হয়?
.element{
position: absolute;left:-9999;
}
সুতরাং স্ট্যাক ওভারফ্লো প্রশ্নের এই উত্তর কীভাবে কোনও উপাদানটি অফ-স্ক্রিনে রয়েছে তা পরীক্ষা করা উচিত তাও বিবেচনা করা উচিত।
উপাদানটি ইউআইতে প্রদর্শিত আছে কিনা তা অনুমান করার জন্য দৃশ্যমানতা / প্রদর্শন বৈশিষ্ট্যগুলি পরীক্ষা করার জন্য একটি ফাংশন তৈরি করা যেতে পারে।
function checkUIElementVisible(element) {
return ((element.css('display') !== 'none') && (element.css('visibility') !== 'hidden'));
}
এছাড়াও উপাদানটির অবস্থা পরীক্ষা করার জন্য এবং তারপরে এটি টগল করার জন্য একটি ত্রৈমাসিকীয় শর্তসাপেক্ষ অভিব্যক্তি এখানে রয়েছে:
$('someElement').on('click', function(){ $('elementToToggle').is(':visible') ? $('elementToToggle').hide('slow') : $('elementToToggle').show('slow'); });
$('elementToToggle').toggle('slow');
...:)
$(element).is(":visible")
jQuery 1.4.4 এর জন্য কাজ করে তবে jQuery 1.3.2 এর জন্য নয়, ইন্টারনেট & nbsp; এক্সপ্লোরার & nbsp; 8 এর অধীনে । সোভেটোমির সোনভের সহায়ক পরীক্ষার স্নিপেট ব্যবহার করে এটি পরীক্ষা করা যেতে পারে । প্রতিটি একের অধীনে পরীক্ষা করার জন্য, কেবল jQuery এর সংস্করণ পরিবর্তন করতে মনে রাখবেন।