if (typeof newsBanner_scriptLoaded === 'undefined') { function newsBanner(search,click,panel){ var searchElmn = $("."+search); var searchElmn = searchElmn.find(".aevent_img"); var panelDiv = $("."+panel); panelDiv.html('
'); var Ticker = panelDiv.find(".Ticker"); var newsPanel = $('.newsBanner'); //console.log("panelDiv:"); //console.log(panelDiv); if (searchElmn.length > 0) { //speed = (searchElmn.length*4500)+15000; var newsList = []; var count = 1; searchElmn.each(function(index, element) { var newsText = $(element).find(".calendar_day_title_text").text(); newsList.push(newsText); Ticker.append('
'+newsText+'
'); count++; }); panelDiv.attr("data-click",click); panelDiv.eocjsNewsticker({ speed: 20, divider: '', mousePause: true, direction: 'rtl' }); panelDiv.attr("data-click",click); panelDiv.addClass("newsBanner"); }else { newsPanel.hide(); console.log("لا توجد عناصر لتطبيق العمليات عليها"); } } //console.log("news-banner"); $(document).ready(function() { var newsTicPanelElmn = $(".newsTicPanel"); newsTicPanelElmn.each(function(index, element) { var newsTicPanel = $(element); //var newsTicPanel = $("." + newsTicPanel); console.log(element); console.warn(newsTicPanel.outerWidth(true)); var scWidth = newsTicPanel.outerWidth(); var Ticker = newsTicPanel.find(".Ticker"); var TickerWidth = Ticker.outerWidth(); console.log("scWidth: " + scWidth); console.log("TickerWidth: " + TickerWidth); if (Ticker.text() == "") { newsTicPanel.hide(); console.log("لا توجد عناصر لتطبيق العمليات عليها"); } else { var textlength = Ticker.text().length; console.log(textlength); var speed = (textlength * 5) + 2000; Ticker.css("margin-right", scWidth + "px"); Ticker.css("margin-left", scWidth + "px"); var distance = TickerWidth + scWidth; // العرض الكلي للخبر مع المسافة console.log("var distance: " + distance); runNewsTicker(newsTicPanel, Ticker, speed, distance); // استخدام setInterval بشكل صحيح لتمرير المرجع إلى الدالة setInterval(function() { runNewsTicker(newsTicPanel, Ticker, speed, distance); }, speed + 2000); } }); }); function runNewsTicker(newsTicPanel, Ticker, speed, distance) { console.log("runNewsTicker ev: " + speed+ ", distance: "+distance); Ticker.animate({ marginRight: -distance }, speed, 'linear', function() { Ticker.fadeOut("fast",function(){ Ticker.css({ marginRight: newsTicPanel.outerWidth() }); Ticker.fadeIn(); }); }); } $(document).ready(function() { }); /* function newsBanner2(search, click, panel) { var panelDiv = $("." + panel); if (panelDiv.html() == "") { panelDiv.hide(); console.log("لا توجد عناصر لتطبيق العمليات عليها"); } else { var textlength = panelDiv.text().length; console.log(textlength); var speed = (textlength * 10) + 2000; var Ticker = panelDiv.find(".Ticker"); Ticker.css("margin-right", panelDiv.outerWidth() + "px"); Ticker.css("margin-left", panelDiv.outerWidth() + "px"); // ضمان أن العنصر مرئي قبل حساب العرض Ticker.show(); // إضافة تأخير بسيط لضمان تحميل العناصر بالكامل setTimeout(function() { var distance = Ticker.outerWidth(true) + (panelDiv.outerWidth() * 2); // العرض الكلي للخبر مع المسافة console.log("var distance: " + distance); runNewsTicker(panelDiv, Ticker, speed, distance); // استخدام setInterval بشكل صحيح لتمرير المرجع إلى الدالة setInterval(function() { runNewsTicker(panelDiv, Ticker, speed, distance); }, speed + 2000); }, 100); // 100 مللي ثانية تأخير لضمان تحميل العناصر } } function runNewsTicker(panelDiv, Ticker, speed, distance) { console.log("runNewsTicker ev: " + speed + ", distance: " + distance); Ticker.animate({ marginRight: -distance }, speed, 'linear', function() { Ticker.fadeOut("fast", function() { Ticker.css({ marginRight: panelDiv.outerWidth() }); Ticker.fadeIn(); }); }); } function newsBannerNext(){ var newsBannerElmn = $(".newsBanner"); //var newsBannerDivElmn = newsBannerElmn.find("div"); //console.log("panelDiv:"); if (newsBannerElmn.length > 0) { newsBannerElmn.each(function(index, element) { var panelDiv = $(element); var panelDivNext = panelDiv.attr("data-next"); var newNext = parseInt(panelDivNext)+1; var childDiv = panelDiv.children("div"); var childElement = panelDiv.find('[data-id="'+newNext+'"]'); var firstElement = panelDiv.find('[data-id="1"]'); if (childDiv.length > 0) { childDiv.hide(); if (childElement.length > 0) { childElement.show(); panelDiv.attr("data-next",newNext); }else{ firstElement.show(); panelDiv.attr("data-next",1); } } }); } else { console.log("لا توجد عناصر لتطبيق العمليات عليها"); } //console.log(newsBannerElmn); } */ /*! * eocjsNewsticker v0.7.3 * Copyright (c) 2024 Dieter Schmitt * Released under the MIT license - https://opensource.org/licenses/MIT */ (function($, window, document, undefined) { $.fn.eocjsNewsticker = function(options) { return this.each(function() { // _______ Options _______ let defaults = { speed: 20, timeout: 1, divider: '+++', type: 'static', // static or ajax source: '', // ajax source (url) fetch: false, // use fetch instead of $.ajax() interval: 120, // polling interval of the ajax source (seconds) direction: 'ltr' // direction (ltr or rtl) }; let settings = $.extend({}, defaults, options); // _______ Inner Variables _______ let self = $(this); let content = self.html(); let active = 'eocjs-newsticker-active'; let container = {}; let one = {}; let two = {}; let both = {}; let oneNeedsUpdate = false; let twoNeedsUpdate = false; let localWindow = $(window); let localWindowWidth = localWindow.width(); // _______ Init _______ function init() { if (!self.hasClass(active)) { create(); start(); self.addClass(active); } } // _______ Create _______ function create() { self.addClass('eocjs-newsticker').html('
'); container = self.find('.eocjs-newsticker-container'); one = self.find('.eocjs-newsticker-one'); two = self.find('.eocjs-newsticker-two'); both = self.find('.eocjs-newsticker-one, .eocjs-newsticker-two'); both.css({[convert('start')]: 0, [convert('end')]: 'auto'}); } // _______ Start _______ function start() { let updateSource = function(src) { return src + (src.indexOf('?') > -1 ? '&' : '?') + 'eocjs_ts=' + Math.floor(Date.now() / 1000); }; if (settings.type === 'static') { content = convert('prefix') + content + convert('suffix'); run(content, (settings.timeout * 1000)); } else if (settings.type === 'ajax') { container.prepend('
'); $.when(ajax(updateSource(settings.source), settings.fetch)).done(function(data) { setContent(data); container.find('.eocjs-newsticker-loader').fadeOut(300, function() { run(content, (settings.timeout * 1000)); $(this).remove(); }); setInterval(function() { $.when(ajax(updateSource(settings.source), settings.fetch)).done(function(data) { setContent(data); oneNeedsUpdate = true; twoNeedsUpdate = true; }); }, settings.interval * 1000); }); } } // _______ Additional function for LTR/RTL conversion _______ function convert(type, data) { let addition = ''; let dir = settings.direction; if (type === 'prefix') { data === undefined ? (dir !== 'rtl' ? addition = '' : addition = settings.divider + ' ') : (dir !== 'rtl' ? addition = data + ' ' : addition = settings.divider + ' '); } else if (type === 'suffix') { data === undefined ? (dir !== 'rtl' ? addition = ' ' + settings.divider : addition = '') : (dir !== 'rtl' ? addition = ' ' + settings.divider : addition = ' ' + data); } else if (type === 'start') { dir !== 'rtl' ? addition = 'left' : addition = 'right'; } else if (type === 'end') { dir !== 'rtl' ? addition = 'right' : addition = 'left'; } else if (type === 'update') { data === undefined ? (dir !== 'rtl' ? addition = 'append' : addition = 'prepend') : (dir !== 'rtl' ? addition = ' ' + data : addition = data + ' '); } else if (type === 'position') { addition = (dir !== 'rtl' && data.position().left > 0) || (dir === 'rtl' && (container.width() - (data.position().left + data.width())) > 0); } return addition; } // _______ Ajax _______ function ajax(source, useFetch) { if (useFetch) { return fetch(source).then(function(response) { return response.json(); }); } else { return $.ajax({ url: source, dataType: 'json' }); } } // _______ setContent _______ function setContent(data) { content = ''; if ($.isPlainObject(data) && !$.isEmptyObject(data)) { for (let property in data) { if (data.hasOwnProperty(property)) { if (content === '') { content = convert('prefix') + data[property] + convert('suffix'); } else { content = convert('prefix', content) + data[property] + convert('suffix', content); } } } } else if (Array.isArray(data) && data.length > 0) { for (let i = 0; i < data.length; i += 1) { if (content === '') { content = convert('prefix') + data[i] + convert('suffix'); } else { content = convert('prefix', content) + data[i] + convert('suffix', content); } } } else { content = 'Error: No data found. Check your remote source!'; } } // _______ Run _______ function runInit(content) { console.error("content",content); update(both, content); two.css({[convert('start')]: one.width()}); } function run(content, timeout) { runInit(content); setTimeout(function() { if (timeout > 0) runInit(content); let width = one.width(); let speed = settings.speed * width; animateSlide(one, 0, -width, speed); animateSlide(two, width, 0, speed); }, timeout); } // _______ Update _______ function update(slide, content) { slide.html(content); while (container.width() > slide.width()) { slide[convert('update')](convert('update', content)); } slide[convert('update')](' '); } // _______ Animation _______ function animateSlide(slide, start, destination, speed) { slide.animate( {[convert('start')]: destination}, speed, 'linear', function() { let width; if (start === 0) { if (slide === one && oneNeedsUpdate) { update(one, content); oneNeedsUpdate = false; } else if (slide === two && twoNeedsUpdate) { update(two, content); twoNeedsUpdate = false; } slide === one ? width = two.width() : width = one.width(); speed = settings.speed * width; slide.css({[convert('start')]: width}); animateSlide(slide, width, 0, speed); } else { slide === one ? width = one.width() : width = two.width(); speed = settings.speed * width; animateSlide(slide, 0, -width, speed); } } ); } // _______ Resize _______ localWindow.on('resize', function() { let width = localWindow.width(); if (width != localWindowWidth) { if (width > localWindowWidth) { if (convert('position', one)) { update(one, content); twoNeedsUpdate = true; } else if (convert('position', two)) { update(two, content); oneNeedsUpdate = true; } } else { oneNeedsUpdate = true; twoNeedsUpdate = true; } localWindowWidth = width; } }); // _______ Init _______ init(); }); }; })(jQuery, window, document); $( "body" ).on( "click",'.newsBanner', function(event) { var classs= $(this).attr("data-click"); $("."+classs).trigger("click"); $("html, body").animate({ scrollTop: $("."+classs).offset().top }, 1000); }); var newsBanner_scriptLoaded = true; }