সিএসএস হোভার বনাম জাভাস্ক্রিপ্ট মাউসওভার [বন্ধ]


84

এমন একটি সময় আছে যখন আমি সিএসএস উপাদান ব্যবহার করার মধ্যে পছন্দ করি: কোনও পৃষ্ঠায় এইচটিএমএল উপাদানগুলির উপস্থিতি নিয়ন্ত্রণ করতে হোভার বা জাভাস্ক্রিপ্ট অনমুআউওভার। নিম্নলিখিত দৃশ্যের বিষয়টি বিবেচনা করুন যেখানে কোনও ডিভ একটি ইনপুট জড়ান

<div>
<input id="input">
</div>

আমি চাই যখন ইনপুটটি মাউস কার্সার ডিভের উপর দিয়ে যায় তখন পটভূমির রঙ পরিবর্তন করতে পারে। সিএসএস পন্থাটি হ'ল

<style>
  input {background-color:White;}
  div:hover input {background-color:Blue;}
</style>

<div><input></div>

জাভাস্ক্রিপ্ট পদ্ধতির হয়

<div onmouseover="document.getElementById('input').style.backgroundColor='Blue';">
  <input id="input">
</div>

প্রতিটি পদ্ধতির সুবিধা এবং অসুবিধাগুলি কী কী? সিএসএস পদ্ধতির বেশিরভাগ ওয়েব ব্রাউজারগুলির সাথে কী ভাল কাজ করা যায়? জাভাস্ক্রিপ্ট CSS এর চেয়ে ধীর?


4
সিএসএস পদ্ধতির জাভাস্ক্রিপ্টের প্রয়োজন নেই।
পিডি

আমি যা কিছু ব্যবহারের পরামর্শ দিচ্ছি : হোভার : http://www.xs4all.nl/~terntern/csshover.html
চিইন

4
"জাভাস্ক্রিপ্ট কি CSS এর চেয়ে ধীর?" আপনি এটি লক্ষ্য করবেন না, তবে জাভাস্ক্রিপ্ট আরও সংস্থান গ্রহণ করবে এবং যদি একই সাথে অন্যান্য অনেক স্ক্রিপ্ট চলতে থাকে তবে জিনিসগুলি ধীর করতে পারে (হ্যান্ডহেল্ড ডিভাইসগুলির জন্য স্পষ্টভাবে চিন্তা করুন, মোবাইল ওয়েবসাইটগুলি), এবং এটি কী ব্যবহার করা উচিত তা নয়। অন্যদিকে সিএসএসগুলি কম সংস্থান ব্যবহার করে এবং হুবহু উপস্থাপনের জন্য বোঝায়। আপনার ওয়েবসাইট জাভাস্ক্রিপ্ট কেবল ওয়েবসাইটের নেভিগেশন এবং কার্যকারিতা বাড়ানোর জন্য ব্যবহার করা উচিত, তবে এটি এখনও জেএস সক্ষম না করে ব্যবহারকারীদের জন্য নাব্যযোগ্য। আমি সিএসএসের পরামর্শ দিচ্ছি: হোভার পন্থা।
হোসে ফাতি

4
এটি একটি পুরানো প্রশ্ন তাই উপরোক্ত মন্তব্যটি আর বৈধ নয়, অবাক হওয়ার মতো বিষয় নয় এবং এটি কখনও হয়নি। একটি কারণ হ'ল ভাল জেএস লাইব্রেরির অভাব যা উচ্চ কার্যকারিতা বয়লারপ্লেট সরবরাহ করে (ফেমো.স ​​দেখুন)। আর একটি হ'ল আধুনিক ব্রাউজারগুলির জেএস ইঞ্জিনগুলি, ডেস্কটপ এবং মোবাইল উভয়ই বেশ দ্রুত। দেশীয় সি সংকলিত কোডটির কার্যকারিতা ৮০% পরিমাপ করার একটি মানদণ্ড রয়েছে। অবশ্যই ব্যতিক্রমের মামলা রয়েছে তবে ব্রাউজারে জেএসের চিত্তাকর্ষক পারফরম্যান্স এখনও দাঁড়িয়ে আছে। লোকেদের সত্যিকার অর্থে "বোঝানো" এটি হ'ল ডোমটি ধীর গতির। জেএস বেশ দ্রুত, তারা কখনই এটি উপলব্ধি করতে পারেনি।
রাত 9:55

উত্তর:


59

হোভার সহ সমস্যাটি হ'ল আই 6 এটি লিঙ্কগুলিতে কেবল সমর্থন করে। আমি আজকাল এই জাতীয় জিনিসের জন্য jQuery ব্যবহার করি:

$("div input").hover(function() {
  $(this).addClass("blue");
}, function() {
  $(this).removeClass("blue");
});

জিনিসগুলি অনেক সহজ করে তোলে। এটি আই 6, এফএফ, ক্রোম এবং সাফারিতে কাজ করবে।


আমি একটি দ্রুত পরীক্ষা করেছি ... দৃশ্যত আই 7 ডিভ সমর্থন করে না: হোভার ??
জন

হ্যাঁ, আই 7 এর CSS2 এর জন্য 50% সমর্থন মতো কিছু রয়েছে। অনেক ওয়েব ডিজাইনার এটি দাঁড়াতে না পারার কারণ।
অ্যালান

তবে সেই সমস্ত ট্র্যাকার, স্নিফার এবং হ্যাকারদের সাথে যারা স্যান্ডবক্সকে যতটা ব্যবহার করতে পারে ঠিক ততটা গালাগালি করে। এটি ট্র্যাকিংয়ের বিরুদ্ধে সহায়তা করে না, তবে এটি বোধগম্য যে লোকেরা এটি আরও শক্ত করার চেষ্টা করে। আমি এমন লোকদের জানি যারা কুকিগুলিকে অনুমতি দেয় না। এবং এগুলিরও তাদের বৈধ কারণ রয়েছে, কেবল ফায়ারশিপটি দেখুন। আমি এখনও আপনার উত্তরটিকে অগ্রাহ্য করেছি, কারণ আমি যদি লোকেরা 2013 এ আগত তবে আমি পছন্দ করব যে তারা যে কোনও উপায়ে ট্র্যাক পেয়েছে এবং আমার (আমাদের?) প্রিয় খেলনা সক্ষম করে।
জশাচ

আমি ভাবছি যে মেট্রোই ব্যবহারকারীদের জাভাস্ক্রিপ্ট নিষ্ক্রিয় করতে সক্ষম করছে: পি তবে গম্ভীরভাবে, ক্রোমোস, মজিলার ওএস, মেট্রোই সমস্ত জাভাস্ক্রিপ্ট ব্যবহার করে। এইচটিএমএল 5, সিএসএস 3, ওয়েবজিএল এবং জাভাস্ক্রিপ্ট কয়েক বছরের মধ্যে ক্লায়েন্ট সাইড অ্যাপ্লিকেশন তৈরি করার ভাষা হবে। শুধু ধৈর্য ধরুন, শীঘ্রই ব্রাউজারের বাইরে জাভাস্ক্রিপ্ট আসবে, ব্রাউজারে আর এটি নিষ্ক্রিয় করার দরকার নেই :)
jascha

32

সিএসএস একটি অনেক বেশি রক্ষণাবেক্ষণযোগ্য এবং পঠনযোগ্য।


18
অ-<a> উপাদানগুলিতে আইআই 6 সমর্থন না করা অবধি এটি বজায় রাখা যায়। তারপরে এটি একটি ব্যথা কারণ আপনাকে জেএস-হ্যাক ব্যবহার করতে হবে। তবে সিএসএস এখনও আমার পছন্দের উপায়। 1999 ব্রাউজার ব্যবহারকারী লোকদের 1999 টির অভিজ্ঞতা থাকতে দিন।
টাইসন

4
লোকেরা আপডেট করা উচিত এটি সর্বোত্তম সমাধান ... আমি একটি ট্যাগ যুক্ত করার পরামর্শ দেব যা ব্রাউজারটি সনাক্ত করে এবং তাদের আইই <7 ব্যবহার করার পরে আপডেট করতে বলে 7
ট্র্যাভিস পেসেটো

11

কেন না উভয়? অ্যানিমেটেড এফেক্টস এবং সিএসএসের ফালব্যাক হিসাবে jQuery ব্যবহার করুন। এটি আপনাকে ক্রেফুল অবক্ষয়ের সাথে jQuery এর সুবিধা দেয়

সিএসএস:

a {color: blue;}
a:hover {color: red;}

jQuery ( রঙ সঞ্চার করতে jQueryUI ব্যবহার করে ):

$('a').hover( 
  function() {
    $(this)
      .css('color','blue')
      .animate({'color': 'red'}, 400);
  },
  function() {
    $(this)
      .animate({'color': 'blue'}, 400);
  }
);

ডেমো


4
সিএসএস ট্রানজিশনের সাথে আমি যুক্তি দিয়েছিলাম যে আপনার যখন কেবল জাভাস্ক্রিপ্টটি ফ্যালব্যাক হিসাবে ব্যবহার করা উচিত তখন: পুরানো আই ব্রাউজারগুলিতে নোঙ্গর ট্যাগগুলিতে হোভার প্রয়োগ করা হয়।
অ্যাডাম ইয়াংজারস

জেসবিনে কিছু পরিবর্তন ডেমোটি কাজ করে না। আমি jQuery এর বর্তমান সংস্করণটি উল্লেখ করতে ডেমোটি আপডেট করেছি এবং সমস্তগুলি আবার কাজ করে।
কিংজেফ্রে 18

10

জাভাস্ক্রিপ্টে এটি করার একটি অতিরিক্ত সুবিধা হ'ল আপনি বিভিন্ন সময়ে পয়েন্টে হোভার ইফেক্ট যুক্ত / মুছে ফেলতে পারেন - উদাহরণস্বরূপ টেবিল সারিগুলির ওভার ওভার রঙ পরিবর্তন করে, ক্লিক করুন হোভার ইফেক্টটি অক্ষম করে এবং স্থান মোডে সম্পাদনা শুরু করে।


ধন্যবাদ - এটি আসলে আমি যে প্রশ্নের সন্ধান করছি তার উত্তর দিয়েছে! :-)
পিটার এস ম্যাগনসন

6

একটি খুব বড় পার্থক্য হ'ল ": হোভার" রাষ্ট্রটি যখন মাউসের উপাদান থেকে সরে যায় তখন স্বয়ংক্রিয়ভাবে নিষ্ক্রিয় হয়। ফলস্বরূপ হোভারে প্রয়োগ করা কোনও শৈলী স্বয়ংক্রিয়ভাবে বিপরীত হয়। অন্যদিকে, জাভাস্ক্রিপ্ট পদ্ধতির সাথে, আপনাকে "অনমাউসওভার" এবং "অনমাউসআউট" ইভেন্ট উভয়ই সংজ্ঞায়িত করতে হবে। যদি আপনি কেবল "অনমাউসওভার" সংজ্ঞায়িত করেন তবে "অনমাউসওভার" প্রয়োগ করা স্টাইলগুলি আপনার মাউস আউট করার পরেও অবিরত থাকবে যদি না আপনি স্পষ্টভাবে "অনমাউসআউট" সংজ্ঞায়িত করেন।


6

সম্পাদনা: এই উত্তরটি আর সত্য হয় না। সিএসএস ভাল সমর্থিত এবং জাভাস্ক্রিপ্ট পড়ুন (পড়ুন: জেএসক্রিপ্ট) যে কোনও ওয়েব অভিজ্ঞতার জন্য এখন বেশ প্রয়োজন, এবং কয়েকটি লোক জাভাস্ক্রিপ্ট অক্ষম করে।

আসল উত্তর, আমার মতামত হিসাবে ২০০৯।

আমার মাথার উপরে:

সিএসএসের সাহায্যে আপনার ব্রাউজার সমর্থন নিয়ে সমস্যা থাকতে পারে।

জেএসক্রিপ্টের সাহায্যে লোকেরা জেএসক্রিপ্ট অক্ষম করতে পারে (আমি যা করি তা হ'ল)।

আমি বিশ্বাস করি যে পছন্দের পদ্ধতিটি এইচটিএমএল, সিএসএস সহ লেআউট এবং জেএসক্রিপ্টে গতিশীল কিছু করা উচিত content সুতরাং এই উদাহরণে, আপনি সম্ভবত সিএসএস পদ্ধতির গ্রহণ করতে চাইবেন।


4
আপনি জাভাস্ক্রিপ্ট নিষ্ক্রিয় করবেন কেন? আপনি প্রাক-সহস্রাব্দ অভিজ্ঞতা পছন্দ?
অ্যালেক্স

4
কারণ এটি একটি সুরক্ষা ঝুঁকিপূর্ণ এবং অনেকগুলি সাইট জাভাস্ক্রিপ্টের অপব্যবহার করে। আমি "নোস্ক্রিপ্ট" নামে একটি নিফটি ফায়ারফক্স প্লাগইন ব্যবহার করি যা আপনাকে পছন্দসই সাইটগুলি থেকে কেবল স্ক্রিপ্টগুলি সক্ষম করতে দেয়।
অ্যালান

5

দুজনের মধ্যে মাথায় রাখার জন্য আরও একটি পার্থক্য রয়েছে। সিএসএস সহ,:hover সাহায্যে মাউস যখন কোনও উপাদানকে সরিয়ে নিয়ে যায় তখন সর্বদা রাষ্ট্র নিষ্ক্রিয় হয়। যাইহোক, জাভাস্ক্রিপ্টের সাহায্যে, onmouseoutমাউস যখন বাকী পৃষ্ঠাটির পরিবর্তে ব্রাউজার ক্রোমের দিকে উপাদানটি সরিয়ে ফেলবে তখন ঘটনাটি বরখাস্ত করা হয় না।

এটি আপনার ভাবনার চেয়ে প্রায়শই ঘটে থাকে, বিশেষত যখন আপনি নিজের পৃষ্ঠার শীর্ষে কাস্টম হোভারের রাজ্যগুলি দিয়ে একটি নভবার তৈরি করছেন।


4

ইন্টারনেট এক্সপ্লোরারগুলিতে, << উপাদানটির তুলনায় অন্যান্য উপাদানগুলিতে কাজ করার জন্য হোভার সিলেক্টরের জন্য অবশ্যই একটি <! DOCTYPE> ঘোষণা করতে হবে।



2

হোভার করার জন্য jQuery ব্যবহার করার ক্ষেত্রে , আমি সর্বদা প্লাগইন হোভারআইন্ট ব্যবহার করি কারণ এটি সংক্ষিপ্ত সময়ের জন্য কোনও উপাদানকে থামিয়ে না দেওয়া পর্যন্ত ঘটনাটি আগুন দেয় না ... আপনি যদি দুর্ঘটনাক্রমে চালনা করেন তবে ঘটনাগুলি ধরে প্রচুর পরিমাণে মাউস ছোঁড়া বন্ধ করে দেয় this তাদের উপর মাউস বা কেবল একটি বিকল্প চয়ন করার সময়।


0

জাভাস্ক্রিপ্ট অক্ষম করে আইই 6 এর জন্য যদি আপনার 100% সমর্থন প্রয়োজন না হয় আপনি IE শর্তযুক্ত মন্তব্য সহ আই 7 -জেএস জাতীয় কিছু ব্যবহার করতে পারেন । তারপরে আপনি হোভার ইফেক্টগুলি প্রয়োগ করতে কেবল CSS বিধিগুলি ব্যবহার করুন। এটি ঠিক কীভাবে কাজ করে তা আমি জানি না তবে এটি সিএসএস বিধি প্রচুর করতে জাভাস্ক্রিপ্ট ব্যবহার করে যা সাধারণত আই 7 এবং 8 এ আসে না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.