This media is not supported in your browser
VIEW IN TELEGRAM
فروت لوپر: SVG
انیمیشن جعبه با استفاده از GSAP.
🔗https://codepen.io/johnjoeparrot/pen/yLdRwrp
#️⃣#code
👥@IR_javascript_group
🆔@IR_javascript
انیمیشن جعبه با استفاده از GSAP.
🔗https://codepen.io/johnjoeparrot/pen/yLdRwrp
#️⃣#code
👥@IR_javascript_group
🆔@IR_javascript
👍3
Shepherd.js — راهنمای کاربری
یک تور راهنمای تعاملی برای کاربران سایت خود ارائه دهید.
🔗https://github.com/shipshapecode/shepherd
#️⃣#npm_module
👥@IR_javascript_group
🆔@IR_javascript
یک تور راهنمای تعاملی برای کاربران سایت خود ارائه دهید.
🔗https://github.com/shipshapecode/shepherd
#️⃣#npm_module
👥@IR_javascript_group
🆔@IR_javascript
❤1👍1
خبر مهم!
Codeium نسخهای فورک شده از VS Code به نام Windsurf Editor معرفی کرده است (میتوانید از اینجا آن را دانلود و امتحان کنید). این حرکت نشاندهنده تلاش Codeium ارائه یک محیط توسعه یکپارچه با قابلیتهای پیشرفته است.
🔗https://windsurf.ai/
#️⃣#tool
👥@IR_javascript_group
🆔@IR_javascript
Codeium نسخهای فورک شده از VS Code به نام Windsurf Editor معرفی کرده است (میتوانید از اینجا آن را دانلود و امتحان کنید). این حرکت نشاندهنده تلاش Codeium ارائه یک محیط توسعه یکپارچه با قابلیتهای پیشرفته است.
🔗https://windsurf.ai/
#️⃣#tool
👥@IR_javascript_group
🆔@IR_javascript
👍2👎1
Progressive-Image.js
Progressive-Image.js یک کتابخانه برای بارگذاری تدریجی تصاویر است. این کتابخانه ابتدا یک تصویر کوچک و تار نمایش میدهد که به مرور زمان با تصویر کامل جایگزین میشود. این روش تجربه کاربری (UX) را بهبود میبخشد.
🔗https://github.com/craigbuckler/progressive-image.js
#️⃣#npm_module
👥@IR_javascript_group
🆔@IR_javascript
Progressive-Image.js یک کتابخانه برای بارگذاری تدریجی تصاویر است. این کتابخانه ابتدا یک تصویر کوچک و تار نمایش میدهد که به مرور زمان با تصویر کامل جایگزین میشود. این روش تجربه کاربری (UX) را بهبود میبخشد.
🔗https://github.com/craigbuckler/progressive-image.js
#️⃣#npm_module
👥@IR_javascript_group
🆔@IR_javascript
🔥4
در Vue یک ساختار کماستفاده برای ارتباط بین متغیرهای جاوااسکریپت و ویژگیهای CSS وجود دارد که گاهی از v-bind در بخش style راحتتر است:
این نحوه نوشتار، نسخهی اول ویژگیهای CSS واکنشگرا در Vue 3 است.
سپس، ایوان نسخهای با استفاده از v-bind() ارائه کرد که برخی از محدودیتهای vars را حل میکند.
#️⃣#tip
👥@IR_javascript_group
🆔@IR_javascript
<template>
<div class="text">Hello, Vue!</div>
</template>
<script setup>
import { ref } from 'vue';
const color = ref('red');
</script>
<style scoped vars="{ colorVar: color }">
.text {
color: var(--colorVar);
}
</style>
این نحوه نوشتار، نسخهی اول ویژگیهای CSS واکنشگرا در Vue 3 است.
سپس، ایوان نسخهای با استفاده از v-bind() ارائه کرد که برخی از محدودیتهای vars را حل میکند.
#️⃣#tip
👥@IR_javascript_group
🆔@IR_javascript
👍5
جایگزینهای دستور if…else در جاوااسکریپت
۱️⃣ دستور Switch
مقدار مطابقت دادهشده یک عبارت را پیدا کرده و بلوک کد مرتبط با آن مقدار را اجرا میکند.
۲️⃣ عملگر سهگانه (Ternary Operator)
یک شرط را بررسی میکند و اگر شرط درست بود، عبارت اول را اجرا میکند. در غیر این صورت، عبارت دوم را اجرا میکند.
۳️⃣ جدول پرش / ارسال (Jump / Dispatch Table)
مقدار-توابع را در یک شیء ذخیره میکند تا بهطور سریع تابع مناسب را بر اساس مقدار (که بهعنوان کلید شیء در نظر گرفته میشود) فراخوانی کند.
۴️⃣ ارسال پویا (Dynamic Dispatch)
این الگو شامل انتخاب متد پلیمورفیک (چندریختی) مناسب برای فراخوانی بر اساس نوع شیء است.
#️⃣#tip
👥@IR_javascript_group
🆔@IR_javascript
۱️⃣ دستور Switch
مقدار مطابقت دادهشده یک عبارت را پیدا کرده و بلوک کد مرتبط با آن مقدار را اجرا میکند.
۲️⃣ عملگر سهگانه (Ternary Operator)
یک شرط را بررسی میکند و اگر شرط درست بود، عبارت اول را اجرا میکند. در غیر این صورت، عبارت دوم را اجرا میکند.
۳️⃣ جدول پرش / ارسال (Jump / Dispatch Table)
مقدار-توابع را در یک شیء ذخیره میکند تا بهطور سریع تابع مناسب را بر اساس مقدار (که بهعنوان کلید شیء در نظر گرفته میشود) فراخوانی کند.
۴️⃣ ارسال پویا (Dynamic Dispatch)
این الگو شامل انتخاب متد پلیمورفیک (چندریختی) مناسب برای فراخوانی بر اساس نوع شیء است.
#️⃣#tip
👥@IR_javascript_group
🆔@IR_javascript
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Mockup Ceacle
مجموعهای از موکاپهای رایگان که بر اساس دستهبندیها تقسیمبندی شدهاند.
🔗https://mockup.ceacle.com/search?kind=all&view=all&order=popular&q=%22free%22
#️⃣#tool
👥@IR_javascript_group
🆔@IR_javascript
مجموعهای از موکاپهای رایگان که بر اساس دستهبندیها تقسیمبندی شدهاند.
🔗https://mockup.ceacle.com/search?kind=all&view=all&order=popular&q=%22free%22
#️⃣#tool
👥@IR_javascript_group
🆔@IR_javascript
👍1
TypeIt
TypeIt یک کتابخانه جاوااسکریپت برای انیمیشنسازی تایپ متن است. این کتابخانه به شما امکان میدهد تا فرآیند تایپ متن را مستقیماً در صفحه وب شبیهسازی کنید و حس نوشتن واقعی را ایجاد کنید.
🔗https://github.com/alexmacarthur/typeit
#️⃣#npm_module
👥@IR_javascript_group
🆔@IR_javascript
TypeIt یک کتابخانه جاوااسکریپت برای انیمیشنسازی تایپ متن است. این کتابخانه به شما امکان میدهد تا فرآیند تایپ متن را مستقیماً در صفحه وب شبیهسازی کنید و حس نوشتن واقعی را ایجاد کنید.
🔗https://github.com/alexmacarthur/typeit
#️⃣#npm_module
👥@IR_javascript_group
🆔@IR_javascript
Nicepage
در این سایت بیش از پانزده هزار قالب رایگان برای CSS جمعآوری شده است.
🔗https://nicepage.com/css-templates
#️⃣#tool
👥@IR_javascript_group
🆔@IR_javascript
در این سایت بیش از پانزده هزار قالب رایگان برای CSS جمعآوری شده است.
🔗https://nicepage.com/css-templates
#️⃣#tool
👥@IR_javascript_group
🆔@IR_javascript
🔥1
لیستی از سایت ها و کانال هایی که در آنها می توانید قالب های رایگان پیدا کنید
https://themelock.com/eng/
https://nullmart.net/
https://scriptmafia.org/category/templates/
https://t.me/ingressive4good
https://t.me/themelock
https://t.me/nullmart
https://t.me/DesignGoodies
https://t.me/EnvatoFreebies
https://t.me/michollo
اگر مورد دیگری را میشناسید در بخش نظرات مطرح کنید
#️⃣#tool
👥@IR_javascript_group
🆔@IR_javascript
https://themelock.com/eng/
https://nullmart.net/
https://scriptmafia.org/category/templates/
https://t.me/ingressive4good
https://t.me/themelock
https://t.me/nullmart
https://t.me/DesignGoodies
https://t.me/EnvatoFreebies
https://t.me/michollo
اگر مورد دیگری را میشناسید در بخش نظرات مطرح کنید
#️⃣#tool
👥@IR_javascript_group
🆔@IR_javascript
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Flexboxdefense
یک بازی در سبک Tower Defense است که در آن باید برجها را با استفاده از فِلکسباکس به درستی قرار دهید تا از حملات دفاع کنید.
🔗http://www.flexboxdefense.com/
#️⃣#tool
👥@IR_javascript_group
🆔@IR_javascript
یک بازی در سبک Tower Defense است که در آن باید برجها را با استفاده از فِلکسباکس به درستی قرار دهید تا از حملات دفاع کنید.
🔗http://www.flexboxdefense.com/
#️⃣#tool
👥@IR_javascript_group
🆔@IR_javascript
👏4
دینامیک کردن نامهای ویژگیها 🥸
وقتی درباره ویژگیهای دینامیک در جاوااسکریپت صحبت میکنیم، معمولاً به انعطافپذیری و راحتی آن فکر میکنیم: میتوانیم اشیاء را در حین اجرا ایجاد کنیم بدون اینکه نیاز داشته باشیم همه کلیدها را از پیش بدانیم. اما مانند هر ابزار دیگری، مهم است که بدانیم کی از آن استفاده کنیم و چگونه از اشتباهات جلوگیری کنیم.
➡️ کی مفید است؟
به عنوان مثال، در هنگام توسعه سیستمهای ردیابی رویدادها یا لاگها، معمولاً نیاز است که هر شیء کلید منحصر به فردی داشته باشد – برای مثال، بر اساس زمان وقوع رویداد. به جای ایجاد یک شیء استاتیک، میتوان ویژگی دینامیک با برچسب زمانی که برای هر رویداد منحصر به فرد است، اضافه کرد.
➡️ چه نکاتی باید در نظر گرفته شود؟
✨ یکی از مشکلات بالقوه با کلیدهای دینامیک، امکان نداشتن ویژگی است. به عنوان مثال، در دسترسی به object[dynamicKey]، جاوااسکریپت تضمین نمیکند که این کلید واقعاً در شیء موجود باشد و در صورتی که نباشد، undefined را برمیگرداند؛
✨ زمانی که کلیدها بر اساس متغیرها ایجاد میشوند، کد برای کسانی که بعداً آن را میخوانند کمتر قابل پیشبینی میشود. بنابراین، برای اینکه کد قابل فهم باقی بماند، نباید از ویژگیهای دینامیک به طور افراطی استفاده کرد و باید ساختار دادهها مستند شود.
در نهایت، ویژگیهای دینامیک میتوانند زمان زیادی را برای شما صرفهجویی کرده و کد را سادهتر کنند، اما تنها در صورتی که با دقت از آنها استفاده کنید. 👍
پ.ن. پیادهسازیها برای درک راحتتر ساده شدهاند :)
#️⃣#tip
👥@IR_javascript_group
🆔@IR_javascript
وقتی درباره ویژگیهای دینامیک در جاوااسکریپت صحبت میکنیم، معمولاً به انعطافپذیری و راحتی آن فکر میکنیم: میتوانیم اشیاء را در حین اجرا ایجاد کنیم بدون اینکه نیاز داشته باشیم همه کلیدها را از پیش بدانیم. اما مانند هر ابزار دیگری، مهم است که بدانیم کی از آن استفاده کنیم و چگونه از اشتباهات جلوگیری کنیم.
➡️ کی مفید است؟
به عنوان مثال، در هنگام توسعه سیستمهای ردیابی رویدادها یا لاگها، معمولاً نیاز است که هر شیء کلید منحصر به فردی داشته باشد – برای مثال، بر اساس زمان وقوع رویداد. به جای ایجاد یک شیء استاتیک، میتوان ویژگی دینامیک با برچسب زمانی که برای هر رویداد منحصر به فرد است، اضافه کرد.
function logEvent(event) {
const timestamp = new Date().toISOString();
return {
[timestamp]: event,
};
}
console.log(logEvent("User logged in")); // { '2024-11-11T09:19:04.939Z': 'User logged in' }
➡️ چه نکاتی باید در نظر گرفته شود؟
✨ یکی از مشکلات بالقوه با کلیدهای دینامیک، امکان نداشتن ویژگی است. به عنوان مثال، در دسترسی به object[dynamicKey]، جاوااسکریپت تضمین نمیکند که این کلید واقعاً در شیء موجود باشد و در صورتی که نباشد، undefined را برمیگرداند؛
✨ زمانی که کلیدها بر اساس متغیرها ایجاد میشوند، کد برای کسانی که بعداً آن را میخوانند کمتر قابل پیشبینی میشود. بنابراین، برای اینکه کد قابل فهم باقی بماند، نباید از ویژگیهای دینامیک به طور افراطی استفاده کرد و باید ساختار دادهها مستند شود.
در نهایت، ویژگیهای دینامیک میتوانند زمان زیادی را برای شما صرفهجویی کرده و کد را سادهتر کنند، اما تنها در صورتی که با دقت از آنها استفاده کنید. 👍
پ.ن. پیادهسازیها برای درک راحتتر ساده شدهاند :)
#️⃣#tip
👥@IR_javascript_group
🆔@IR_javascript
👍1
گوگل کروم بازی دایناسور (T-Rex) را بهصورت بیپایان در حالت عدم اتصال به اینترنت ارائه میدهد. بیایید کلاه هکرهایمان را به سر بگذاریم و کمی با این بازی دستکاری کنیم.
اگر قادر به مشاهده صفحه "بدون اینترنت" نیستید، یک تب جدید باز کرده و عبارت chrome://dino را وارد کنید و سپس اینتر بزنید. سپس کد زیر را در کنسول پیست کنید
#️⃣#tip
👥@IR_javascript_group
🆔@IR_javascript
اگر قادر به مشاهده صفحه "بدون اینترنت" نیستید، یک تب جدید باز کرده و عبارت chrome://dino را وارد کنید و سپس اینتر بزنید. سپس کد زیر را در کنسول پیست کنید
function dispatchKey(type, key) {
document.dispatchEvent(new KeyboardEvent(type, {keyCode: key}));
}
setInterval(function () {
const KEY_CODE_SPACE_BAR = 32
const KEY_CODE_ARROW_DOWN = 40
const CANVAS_HEIGHT = Runner.instance_.dimensions.HEIGHT
const DINO_HEIGHT = Runner.instance_.tRex.config.HEIGHT
const obstacle = Runner.instance_.horizon.obstacles[0]
const speed = Runner.instance_.currentSpeed
if (obstacle) {
const w = obstacle.width
const x = obstacle.xPos // measured from left of canvas
const y = obstacle.yPos // measured from top of canvas
const yFromBottom = CANVAS_HEIGHT - y - obstacle.typeConfig.height
const isObstacleNearby = x < 25 * speed - w / 2
if (isObstacleNearby) {
if (yFromBottom > DINO_HEIGHT) {
// Pterodactyl going from above, do nothing
} else if (y > CANVAS_HEIGHT / 2) {
// Jump
dispatchKey("keyup", KEY_CODE_ARROW_DOWN)
dispatchKey("keydown", KEY_CODE_SPACE_BAR)
} else {
// Duck
dispatchKey("keydown", KEY_CODE_ARROW_DOWN)
}
}
}
}, Runner.instance_.msPerFrame);
#️⃣#tip
👥@IR_javascript_group
🆔@IR_javascript
👍3
ویدیو دوبله شده در مورد شش سبک محبوب معماری API [+لینک]
با میلیاردها درخواست API که روزانه انجام میشود، درک سبکهای معماری API اهمیت بیشتری پیدا کرده است. این سبکها ستون فقرات دنیای دیجیتال امروزی را تشکیل میدهند و واسطهای برنامهنویسی کاربردی (API) نقش کلیدی در توسعه نرمافزارهای مدرن دارند.
🔗https://aparat.com/v/uka260b
#️⃣#tip #dub
👥@IR_javascript_group
🆔@IR_javascript
با میلیاردها درخواست API که روزانه انجام میشود، درک سبکهای معماری API اهمیت بیشتری پیدا کرده است. این سبکها ستون فقرات دنیای دیجیتال امروزی را تشکیل میدهند و واسطهای برنامهنویسی کاربردی (API) نقش کلیدی در توسعه نرمافزارهای مدرن دارند.
🔗https://aparat.com/v/uka260b
#️⃣#tip #dub
👥@IR_javascript_group
🆔@IR_javascript