نحوه نوشتن رشته جستجو در html فیلد جستجوی کشویی فیلد جستجوی مسطح
در این آموزش، ما یک فرم جستجوی کشویی ایجاد می کنیم که کاملاً در طراحی رابط برای دستگاه های تلفن همراه قرار می گیرد. فقط از CSS برای پیاده سازی عنصر استفاده می شود - بدون جاوا اسکریپت یا نشانه گذاری اضافی. ساده و راه موثربرای پیاده سازی یک فرم جستجوی فشرده
هدف
در دستگاه های تلفن همراه، هر پیکسل شمارش می شود. برای به حداقل رساندن فضای مورد نیاز برای نمایش فرم، در ابتدا به صورت فشرده نشان داده می شود و با دریافت فوکوس ورودی (:focus ) گسترش می یابد. این رویکرد به شما امکان می دهد فضا را برای سایر عناصر رابط و محتوا ذخیره کنید.
نشانه گذاری HTML
فرم از HTML5 استفاده می کند. کد بسیار ساده است:
بازنشانی نمای فرم جستجوی پیش فرض در مرورگرهای Webkit
به طور پیش فرض، در مرورگرهای Webkit فرم جستجو به این صورت خواهد بود:
برای اینکه فرم جستجو مانند یک فیلد ورودی متن معمولی به نظر برسد، باید سبک های زیر را اضافه کنید:
ورودی ( -webkit-appearance: textfield; -webkit-box-sizing: content-box; font-family: inherit; font-size: 100%; ) ورودی::-webkit-search-decoration، ورودی::-webkit- دکمه جستجو-لغو (نمایش: هیچکدام؛ )
تشکیل فرم جستجوی ما
فیلد ورودی دارای عرض نرمال 55 پیکسل خواهد بود و در حالت فوکوس تا 130 پیکسل گسترش می یابد. ویژگی transition برای انیمیشن و box-shadow برای افکت درخشش استفاده می شود.
ورودی ( پسزمینه: url #ededed (img/search-icon.png) بدون تکرار 9 پیکسل در مرکز؛ حاشیه: یک پیکسل ثابت #cccc؛ بالشتک: 9 پیکسل 10 پیکسل 32 پیکسل؛ عرض: 55 پیکسل؛ /* عرض پیشفرض */ -webkit- حاشیه -radius: -moz-border-radius: -webkit-transition: all.5s عرض: 130px; -webkit-box-shadow: 0 0 5px rgba(109207246.5 shadow: 0 0 5px rgba(109207246.5: 0 5px rgba(109207.2); */)
مثال B
در مثال B، فرم جستجو به طور قابل توجهی به حداقل رسیده است - فقط نماد بدون هیچ متن پرکننده نمایش داده می شود. توجه داشته باشید که ویژگی های padding و width برای فیلد جستجو تغییر کرده و یک دکمه دایره ای شکل گرفته است. برای نامرئی کردن متن، از ویژگی color:transparent استفاده کنید.
ورودی #demo-b ( عرض: 15 پیکسل؛ بالشتک-چپ: 10 پیکسل؛ رنگ: شفاف؛ مکان نما: نشانگر؛ ) ورودی #demo-b: شناور (رنگ پس زمینه: #fff؛ ) #دمو-b ورودی: فوکوس ( عرض : 130px padding-left: 32px background-color: #fff;
سازگاری مرورگر
روش توصیف شده در همه مرورگرهای اصلی کار می کند: کروم، فایرفاکس، سافاری و IE8+. در مرورگرهای IE7 و قدیمی تر، به دلیل عدم پشتیبانی از شبه کلاس: فوکوس و نوع فیلد جستجو، عملکرد کار نمی کند.
آموزش ساخت نوار جستجوی سازگار و پاسخگو برای موبایل
امروز می خواهیم به شما نشان دهیم که چگونه یک افکت مانند تصویر بالا ایجاد کنید. هدف بهبود سازگاری با دستگاه های تلفن همراه و مرورگرهای قدیمی تر (IE 8+) است. حتی اگر در نگاه اول یک چیز ساده به نظر می رسد، من می گویم که ما مجبور شدیم از چندین ترفند استفاده کنیم تا کل مکانیسم همانطور که در نظر گرفته شده است کار کند.
به طور کلی، آنچه می خواهیم از نوار جستجو به دست آوریم:
- در ابتدا فقط دکمه با نماد جستجو نمایش داده می شود
- هنگامی که روی نماد کلیک می کنید، باید نوار جستجو را به کناری منتقل کنید
- کامپوننت باید انعطاف پذیر باشد، به این معنا که بتوان از آن در یک رابط پاسخگو استفاده کرد
- هنگامی که کاربر چیزی را در یک خط تایپ می کند، لازم است که فرم را با فشار دادن دکمه Enter یا کلیک بر روی دکمه جستجو ارسال کنید.
- اگر فیلد باز باشد و هیچ داده ای در آن وارد نشده باشد و دکمه جستجو را فشار دهیم، فیلد ورودی باید بسته شود.
- اگر جایی خارج از فیلد جستجو کلیک کنیم، بدون توجه به خالی بودن یا نبودن آن، باید فیلد ورودی بسته شود.
- اگر جاوا اسکریپت غیرفعال باشد، قسمت جستجو باید باز شده ظاهر شود
- برای تعامل بهتر با دستگاه های لمسی، همچنین باید پشتیبانی از رویدادهای لمسی را اضافه کنید
اکنون ما در مورد هر کاری که باید انجام دهیم تصمیم گرفته ایم، بیایید با نشانه گذاری شروع کنیم.
علامت گذاری
در نشانه گذاری از ظرف اصلی، یک فرم، یک فیلد متنی و یک دکمه ارسال و همچنین یک عنصر span برای نماد استفاده می کنیم:
در واقع، شما می توانید از یک شبه عنصر برای یک نماد استفاده کنید، اما از آنجایی که برای عناصر قابل تعویض، که عناصر فرم هستند، طراحی نشده است، ما به سادگی از عنصر استفاده می کنیم. دهانه.
اکنون که همه عناصر در جای خود قرار دارند، اجازه دهید آنها را سبک کنیم.
CSS
بر اساس نیازهایمان، ابتدا مطمئن می شویم که دکمه ای با نماد جستجوی قابل مشاهده داریم. هر چیز دیگری باید پنهان شود. اما بیایید یک قدم بیشتر فکر کنیم و تصور کنیم وقتی نوار جستجو را گسترش میدهیم (با ظرف اصلی) چه اتفاقی میافتد. چگونه این کار را انجام دهیم؟ با استفاده از ملک سرریز: پنهانو تغییر عرض ظرف sb-search باید فیلد ورودی را نشان دهد.
بنابراین اول از همه اجازه دهید کانتینر sb-search را استایل کنیم. اجازه دهید آن را شناور در سمت راست، و آن را سرریز: پنهان. عرض اصلی آن 60 پیکسل خواهد بود، اما از آنجایی که می خواهیم به عرض 100٪ متحرک سازی کنیم، این باعث ایجاد مشکلاتی در مرورگرهای تلفن همراه (iOS) می شود. آنها انتقال از عرض پیکسل به عرض درصد را دوست ندارند. در این مورد، آنها به سادگی انتقال را انجام نخواهند داد. بنابراین در عوض اجازه دهید حداقل عرض را روی 60 پیکسل و عرض را روی 0 درصد قرار دهیم.
ما همچنین یک انتقال برای عرض با ویژگی -webkit-backface-visibility: hidden اضافه می کنیم که از شر "دم" ناخواسته در مرورگرهای تلفن همراه (iOS) خلاص می شود:
Sb-search ( موقعیت: نسبی؛ حاشیه بالا: 10 پیکسل؛ عرض: 0 درصد؛ حداقل عرض: 60 پیکسل؛ ارتفاع: 60 پیکسل؛ شناور: سمت راست؛ سرریز: پنهان؛ -webkit-transition: عرض 0.3 ثانیه؛ -moz-transition : عرض 0.3 ثانیه؛ عرض: 0.3 ثانیه
هر چیزی خارج از این مستطیل نمایش داده نمی شود.
حالا بیایید فیلد ورودی را در موقعیت قرار دهیم. ما از عرض درصد استفاده می کنیم تا وقتی عنصر والد را گسترش می دهیم، فیلد ورودی با آن گسترش می یابد. تنظیم ارتفاع، اندازه فونت و حاشیه صحیح تضمین می کند که متن در مرکز قرار می گیرد (ارتفاع خط آنطور که در IE8 انتظار می رود کار نمی کند، بنابراین به جای آن از حاشیه استفاده می کنیم). تعیین موقعیت مطلق فیلد ورودی ضروری نیست، اما این مشکل آزاردهنده را حل می کند که گاهی اوقات هنگام بستن فیلد جستجو برای مدت کوتاهی در سمت راست دکمه ظاهر می شود.
Sb-search-input ( موقعیت: مطلق؛ بالا: 0؛ سمت راست: 0؛ حاشیه: هیچ؛ طرح کلی: هیچ؛ پسزمینه: #fff؛ عرض: 100%؛ ارتفاع: 60 پیکسل؛ حاشیه: 0؛ شاخص z: 10؛ padding: 20px 20px font-family: font-size: 20px ) input.sb-search-input ( -webkit-appearance: none; -webkit-border-radius: 0;
علاوه بر این، ما سبکهای فیلد ورودی مرورگر استاندارد را برای موتور WebKit حذف میکنیم.
بیایید رنگ های متن را با استفاده از ویژگی های خاص مرورگر تنظیم کنیم:
Sb-search-input::-webkit-input-placeholder ( color: #efb480; ) .sb-search-input:-moz-placeholder ( color: #efb480; ) .sb-search-input::-moz-placeholder (رنگ: #efb480; ) .sb-search-input:-ms-input-placeholder (رنگ: #efb480; )
حالا بیایید مراقب نماد جستجو در دکمه ارسال فرم باشیم. ما می خواهیم آنها را در یک مکان قرار دهیم، یکی زیر دیگری، بنابراین آنها را نسبت به گوشه سمت راست قرار می دهیم و ابعاد یکسانی به آنها می دهیم. از آنجایی که آنها باید یکی روی دیگری قرار گیرند، ما آنها را کاملاً قرار می دهیم:
Sb-icon-search، .sb-search-submit (عرض: 60 پیکسل؛ ارتفاع: 60 پیکسل؛ نمایش: بلوک؛ موقعیت: مطلق؛ راست: 0؛ بالا: 0؛ بالشتک: 0؛ حاشیه: 0؛ ارتفاع خط: 60 پیکسل text-align: center;
در موقعیت اولیه می خواهیم آیکون جستجو قابل کلیک باشد و زمانی که فیلد جستجو را باز می کنیم دکمه ارسال فرم قابل کلیک باشد. بنابراین ابتدا دکمه ارسال فرم را روی z-index=-1 تنظیم می کنیم و آن را شفاف می کنیم تا همیشه بتوانیم ببینیم دهانهبا نماد جستجو:
Sb-search-submit ( پس زمینه: #fff; /* برای اینترنت اکسپلورر */ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"؛ /* IE 8 */ فیلتر: alpha(opacity=0 /* IE 5-7 */ opacity: 0;
چرا پس زمینه او را شفاف نکنید؟ بله، زیرا در IE کار نمی کند، زیرا عنصر قابل کلیک نیست. بنابراین به جای آن از یک پسزمینه جامد استفاده میکنیم و Opacity عنصر را روی 0 قرار میدهیم.
نماد جستجو در ابتدا دارای z-index بالایی خواهد بود زیرا ما می خواهیم در بالای همه چیز ظاهر شود. استفاده از عنصر شبه :قبل ازبرای افزودن نماد جستجو:
Sb-icon-search ( رنگ: #fff؛ پسزمینه: #e67e22؛ z-index: 90؛ اندازه قلم: 22 پیکسل؛ خانواده فونت: "icomoon"؛ صحبت کردن: هیچ؛ سبک قلم: عادی؛ وزن فونت: normal;
فراموش نکنید که فونت نماد را در همان ابتدای CSS اضافه کنید:
@font-face ( font-family: "icomoon"; src:url("../fonts/icomoon/icomoon.eot"); src:url("../fonts/icomoon/icomoon.eot?#iefix" ) format("embedded-opentype"), url("../fonts/icomoon/icomoon.woff") format("woff"), url("../fonts/icomoon/icomoon.ttf") قالب(" truetype")، url ("../fonts/icomoon/icomoon.svg#icomoon") قالب ("svg")؛ وزن قلم: معمولی؛ سبک فونت: عادی؛ )
با استایل هایی که به تازگی تعریف کردیم، می توانیم به سادگی عرض کانتینر sb-search را با اختصاص کلاس sb-search-open به 100% تغییر دهیم. بدون جاوا اسکریپت، فیلد جستجو به طور پیش فرض باز می شود:
Sb-search.sb-search-open, .no-js .sb-search (عرض: 100%؛ )
بیایید رنگ نماد جستجو را تغییر دهیم و آن را در پشت دکمه ارسال فرم قرار دهیم و z-index را روی مقدار کمتری تنظیم کنیم:
Sb-search.sb-search-open .sb-icon-search, .no-js .sb-search .sb-icon-search ( پس زمینه: #da6d0d؛ رنگ: #fff؛ z-index: 11; )
در نهایت، اجازه دهید به دکمه ارسال فرم یک z-index بالاتری بدهیم تا بتوانیم روی آن کلیک کنیم:
Sb-search.sb-search-open .sb-search-submit, .no-js .sb-search .sb-search-submit ( z-index: 90; )
بنابراین، تمام سبک ها شرح داده شده اند، اجازه دهید با جاوا اسکریپت شروع کنیم.
جاوا اسکریپت
بیایید با تغییر کلاس sb-search-open شروع کنیم. زمانی که روی کانتینر اصلی (sb-search) کلیک شود، کلاس را اضافه می کنیم و با کلیک روی دکمه ارسال فرم، آن را حذف می کنیم، اما فقط در صورتی که چیزی در فیلد نوشته نشده باشد. در غیر این صورت فقط فرم را ارسال می کنیم. برای اینکه وقتی روی فیلد ورودی کلیک میکنید کلاس حذف نشود (از آنجایی که تریگرهای ما برای کل کانتینر تنظیم شدهاند)، باید از حباب زدن رویداد کلیک روی این عنصر جلوگیری کنیم. به این معنی که وقتی روی فیلد ورودی کلیک میکنید، رویداد کلیک برای عناصر والد فعال نمیشود.
;(function(window) ( تابع UISearch(el، گزینه ها) ( this.el = el; this.inputEl = el.querySelector("form > input.sb-search-input"); this._initEvents(); ) UISearch .prototype = ( _initEvents: function() ( var self = this، initSearchFn = function(ev) ( if(!classie.has(self.el, "sb-search-open")) (// open ev.preventDefault( self.open() else if(classie.has(self.el, "sb-search-open") && /^\s*$/.test(self.inputEl.value)) ( // بستن self.close(); ( classie.add(this.el, "sb-search-open"); ), close: function() ( classie.remove(this.el, "sb-search-open"); ) ) // به global namespace window.UISearch = UISearch ))(window);
در مرحله بعد باید رویدادها را اضافه کنیم تا اگر در جایی خارج از نوار جستجو کلیک کنیم، کلاس sb-search-open حذف شود. برای اینکه این کار انجام شود، باید هنگام کلیک کردن بر روی کانتینر اصلی، از پاپ آپ رویدادها نیز مراقبت کنید.
;(function(window) ( تابع UISearch(el، گزینه ها) ( this.el = el; this.inputEl = el.querySelector("form > input.sb-search-input"); this._initEvents(); ) UISearch .prototype = ( _initEvents: function() ( var self = this، initSearchFn = function(ev) (ev.stopPropagation(); if(!classie.has(self.el, "sb-search-open")) (/ / open ev.preventDefault(); )) ( // close self.close(); ) ) this.el.addEventListener("click", initSearchFn) this.inputEl.addEventListener("click", function(ev) ( ev.stopPropagation(); )) ; ), open: function() (var self = this; classie.add(this.el, "sb-search-open")؛ // اگر در جایی خارج از کانتینر کلیک شده بود، قسمت جستجو را ببندید var bodyFn = تابع ( ev) (self.close(); this.removeEventListener("click", bodyFn); document.addEventListener("click", bodyFn close: function() ( classie.remove(this.el, "sb -search-open"); ) ) // آن را به پنجره فضای نام جهانی اضافه کنید.UISearch = UISearch; ))(پنجره);
یکی دیگر از مواردی که باید به آن توجه شود، حذف کاراکترهای فضای خالی اضافی از ابتدا و انتهای خط است.
همچنین، وقتی روی نماد جستجو کلیک میکنید، باید مطمئن شوید که فوکوس به قسمت ورودی منتقل میشود. از آنجایی که این باعث رندر ناگهانی در دستگاه های تلفن همراه (iOS) می شود، از آنجایی که صفحه کلید نیز همزمان باز می شود، باید به نحوی از باز شدن صفحه کلید برای چنین مواردی جلوگیری کنیم. وقتی فیلد جستجو را می بندیم، باید فوکوس را از آن حذف کنیم. با این کار مشکلاتی که برخی از دستگاهها پس از بستن فیلد جستجو همچنان نشانگر چشمک زن را نشان میدهند حل میکند.
;(function(window) (// http://stackoverflow.com/a/11381730/989439 function mobilecheck() ( var check = false; (function(a)(if(/(android|ipad|playbook|silk| bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront |opera m(ob|in)i|palm(os)؟|تلفن|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(مرورگر |لینک)|vodafone|wap|ویندوز (ce|phone)|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50i|770s|802s|a wa|abac|ac (er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te| ما)|attw|au(di|\-m|r |s)|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w |bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng )|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic| k0)|esl8|ez(0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|ژن|gf\-5|g\-mo|go(\.w|od )|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp(i|ip)|hs\-c|ht(c (\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac(|\-|\/) |ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt(|\/)|klon|kpt |kwc\-| kyo(c|k)|le(no|xi)|lg(g|\/(k|l|u)|50|54|\-)|libw|lynx|m1\-w|m3ga|m50\/ |ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi| de|do|t(\-| |o|v)|zz)|mt(50|p1|v)|mwbp|mywa|n10|n20|n30(0|2)|n50(0|2|5)|n7(0(0|1) |10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan (a|d|t)|pdxg|pg(13|\-(|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio |pt\-g|qa\-a|qc(07|12|21|32|60|\-|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\ /|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47| mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft| ny)|sp(01|h\-|v\-|v)|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\ -|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|بالا(\ .b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5|\-v)|vm40|voda|vulc|vx(52|53|60|61| 70|80|81|83|85|98)|w3c(\-|)|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|شما|zeto|zte\- /i.test(a.substr(0,4)))check = true))(navigator.userAgent||navigator.vendor||window.opera); UISearch = UISearch; ))(پنجره);
برای اینکه همه اینها به راحتی در دستگاه های تلفن همراه کار کنند، باید رویدادهای لمسی مناسب را تنظیم کنید. با اضافه کردن جلوگیری از پیش فرضبه یک تابع initSearchFnاز فعال شدن همزمان رویدادهای ضربه و کلیک روی صفحه برای دستگاه های تلفن همراه جلوگیری می کند.
;(function(window) (// http://stackoverflow.com/a/11381730/989439 function mobilecheck() ( var check = false; (function(a)(if(/(android|ipad|playbook|silk| bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront |opera m(ob|in)i|palm(os)؟|تلفن|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(مرورگر |لینک)|vodafone|wap|ویندوز (ce|phone)|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50i|770s|802s|a wa|abac|ac (er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te| ما)|attw|au(di|\-m|r |s)|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w |bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng )|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic| k0)|esl8|ez(0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|ژن|gf\-5|g\-mo|go(\.w|od )|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp(i|ip)|hs\-c|ht(c (\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac(|\-|\/) |ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt(|\/)|klon|kpt |kwc\-| kyo(c|k)|le(no|xi)|lg(g|\/(k|l|u)|50|54|\-)|libw|lynx|m1\-w|m3ga|m50\/ |ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi| de|do|t(\-| |o|v)|zz)|mt(50|p1|v)|mwbp|mywa|n10|n20|n30(0|2)|n50(0|2|5)|n7(0(0|1) |10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan (a|d|t)|pdxg|pg(13|\-(|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio |pt\-g|qa\-a|qc(07|12|21|32|60|\-|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\ /|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47| mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft| ny)|sp(01|h\-|v\-|v)|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\ -|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|بالا(\ .b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5|\-v)|vm40|voda|vulc|vx(52|53|60|61| 70|80|81|83|85|98)|w3c(\-|)|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|شما|zeto|zte\- /i.test(a.substr(0,4)))check = true))(navigator.userAgent||navigator.vendor||window.opera); UISearch = UISearch; ))(پنجره);
و در نهایت، برای مرورگرهایی که پشتیبانی نمی کنند addEventListenerو removeEventListener، ما از EventListener از جاناتان نیل استفاده خواهیم کرد.
//EventListener | @jon_neal | //github.com/jonathantneal/EventListener !window.addEventListener && window.Element && (تابع () ( تابع addToPrototype(نام، روش) ( Window.prototype = HTMLDocument.prototype = Element.prototype = روش; ) var registry =; addToPrototype("addEventListener"، تابع (نوع، شنونده) ( var target = this; registry.unshift(( __listener: تابع (رویداد) ( event.currentTarget = target; event.pageX = event.clientX + document.documentElement.scrollLeft; event.pageY = event.clientY + document.documentElement.scrollTop event.preventDefault = function() (event.relatedTarget = event.fromElement || null; event.stopPropagation = function() (رویداد. cancelBubble = true); relatedTarget = event.fromElement || addToPrototype("removeEventListener", تابع (نوع، شنونده) ( برای (var index = 0, length = registry.length; شاخص< length; ++index) { if (registry.target == this && registry.type == type && registry.listener == listener) { return this.detachEvent("on" + type, registry.splice(index, 1).__listener); } } }); addToPrototype("dispatchEvent", function (eventObject) { try { return this.fireEvent("on" + eventObject.type, eventObject); } catch (error) { for (var index = 0, length = registry.length; index < length; ++index) { if (registry.target == this && registry.type == eventObject.type) { registry.call(this, eventObject); } } } }); })();
و اینجاست! امیدوارم از این راهنما لذت برده باشید و چیزهای مفیدی از آن یاد گرفته باشید!
فیلد جستجو برای سایتیکی از مهمترین عناصر رابط کاربری در یک صفحه وب است. با کمک آن کاربر می تواند محتوای مورد نظر خود را در سایت شما پیدا کند.
در این آموزش، نحوه ایجاد نشانه گذاری فیلد جستجو با استفاده از HTML5 و همچنین نحوه استایل دادن به عناصر فرم با استفاده از قدرت CSS3، بدون استفاده از اسکریپت را خواهید آموخت.
1. نشانه گذاری HTML
عنصر
مقالات مرتبط
-
سکونتگاه های نظامی پوشکین در مورد اراکچیوو
الکسی آندریویچ آراکچف (1769-1834) - دولتمرد و رهبر نظامی روسیه، کنت (1799)، ژنرال توپخانه (1807). او از خانواده ای اصیل از اراکچیف ها بود. او در زمان پل اول به شهرت رسید و به ارتش او کمک کرد...
-
آزمایشات فیزیکی ساده در خانه
می توان در دروس فیزیک در مراحل تعیین اهداف و مقاصد درس، ایجاد موقعیت های مشکل در هنگام مطالعه یک مبحث جدید، استفاده از دانش جدید هنگام تثبیت استفاده کرد. ارائه "تجربه های سرگرم کننده" می تواند توسط دانش آموزان استفاده شود تا ...
-
سنتز دینامیکی مکانیزم های بادامک مثالی از قانون سینوسی حرکت مکانیزم بادامک
مکانیزم بادامک مکانیزمی با یک جفت سینماتیکی بالاتر است که توانایی اطمینان از باقی ماندن لینک خروجی را دارد و ساختار دارای حداقل یک پیوند با سطح کاری با انحنای متغیر است. مکانیزم بادامک ...
-
جنگ هنوز شروع نشده است همه نمایش پادکست Glagolev FM
نمایشنامه سمیون الکساندروفسکی بر اساس نمایشنامه میخائیل دورننکوف "جنگ هنوز شروع نشده" در تئاتر پراکتیکا روی صحنه رفت. آلا شندروا گزارش می دهد. طی دو هفته گذشته، این دومین نمایش برتر مسکو بر اساس متن میخائیل دورننکوف است.
-
ارائه با موضوع "اتاق روش شناختی در یک داو"
| تزیین دفاتر در یک موسسه آموزشی پیش دبستانی دفاع از پروژه "دکوراسیون اداری سال نو" برای سال بین المللی تئاتر در ژانویه بود A. Barto Shadow Theater Props: 1. صفحه نمایش بزرگ (ورق روی میله فلزی) 2. لامپ برای آرایشگران ...
-
تاریخ های سلطنت اولگا در روسیه
پس از قتل شاهزاده ایگور ، درولیان ها تصمیم گرفتند که از این پس قبیله آنها آزاد است و مجبور نیستند به کیوان روس ادای احترام کنند. علاوه بر این ، شاهزاده آنها مال سعی کرد با اولگا ازدواج کند. بنابراین او می خواست تاج و تخت کیف را به دست گیرد و به تنهایی ...