Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.06.2020, 21:56
Аватар для LADYX
Профессор
Отправить личное сообщение для LADYX Посмотреть профиль Найти все сообщения от LADYX
 
Регистрация: 19.02.2015
Сообщений: 219

Подставлять title картинки в зависимости от ее размера
Здравствуйте. Есть такой скрипт:

$(document).ready(function() {
    var $newsImg = $(".story img");
    $newsImg.one("load", function() {
        $(this).after(function() {
            var imgTitle = this.title;
            if (imgTitle && imgTitle != '' && $(this).width() > 200 && $(this).css('float') == 'none')
            return "<span class='img_title'>" + imgTitle + "</span>";
        });
    }).each(function() {
        if (this.complete)
            $(this).trigger("load");
    });
});


<style>
img, span.img_title {display:block;}
</style>

<div class="story">
<img src="https://belnaviny.by/wp-content/uploads/2018/12/belnaviny.by-v-belarusi-dorozhaet-gorodskaya-telefonnaya-svyaz-i-pochtovye-otpravleniya-300x150.jpg" alt="Подсказка альт" title="Подсказка тайтл">
</div>


С помощью этого скрипта я вывожу title картинки отдельно span-ом. Вывод зависит от того, какого размера картинка показывается на экране. А возможно ли как-то изменить скрипт и сделать вывод title в зависимости именно от фактического размера самой картинки? Т.е., если физическая ширина картинки, скажем, 200px или больше, то только в этом случае title выводить.
Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 19.06.2020, 22:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от LADYX
в зависимости именно от фактического размера самой картинки?

Сообщение от LADYX
$(this).width() > 200
this.naturalWidth > 200
Ответить с цитированием
  #3 (permalink)  
Старый 19.06.2020, 23:34
Аватар для LADYX
Профессор
Отправить личное сообщение для LADYX Посмотреть профиль Найти все сообщения от LADYX
 
Регистрация: 19.02.2015
Сообщений: 219

Точно)) А я указывал так:
$(this).naturalWidth() > 200

Но почему-то так не работает. Рони, спасибо-спасибо!!
Ответить с цитированием
  #4 (permalink)  
Старый 20.06.2020, 06:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от LADYX
Но почему-то так не работает.
Сообщение от LADYX
&& $(this).css('float') == 'none'
это зачем?
Ответить с цитированием
  #5 (permalink)  
Старый 20.06.2020, 11:52
Аватар для LADYX
Профессор
Отправить личное сообщение для LADYX Посмотреть профиль Найти все сообщения от LADYX
 
Регистрация: 19.02.2015
Сообщений: 219

Сообщение от рони
это зачем?
Рони, это можно убрать и прописать в стиле?
Ответить с цитированием
  #6 (permalink)  
Старый 20.06.2020, 13:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

LADYX,
<!doctype html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
span.img_title{
   color: red;
}
.story img{
    width: 200px;
}
.story{
    margin: 8px;
}

</style>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
  <script>
$(function() {
    var $newsImg = $(".story img");
    $newsImg.one("load", function() {
        $(this).after(function() {
            var imgTitle = this.title;
            if (imgTitle  && this.naturalWidth > 200 ) return "<span class='img_title'>" + imgTitle + "</span>";

        });
    }).each(function() {
        if (this.complete)
            $(this).trigger("load");
    });
});

  </script>

</head>
<body>

<div class="story">
<img src="https://picsum.photos/300/100?1" alt="Подсказка альт" title="Подсказка тайтл 300">
</div>
<div class="story">
<img src="https://picsum.photos/200/100?1" alt="Подсказка альт" title="Подсказка тайтл 200">
</div>
<div class="story">
<img src="https://picsum.photos/400/100?1" alt="Подсказка альт" title="Подсказка тайтл 400">
</div>
</body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 20.06.2020, 16:15
Аватар для LADYX
Профессор
Отправить личное сообщение для LADYX Посмотреть профиль Найти все сообщения от LADYX
 
Регистрация: 19.02.2015
Сообщений: 219

Рони, огромнейшее спасибо!!! Успехов вам! И удачных выходных!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Анимация изменения размера картинки от текущего размера Hidrigar Элементы интерфейса 3 17.12.2017 18:26
Сравнить значение в td и поменять bgcolor AndyTitan jQuery 11 20.08.2014 17:42
нужно, чтоб Div менялся в зависимости от размера картинки bazilio2010 Элементы интерфейса 7 10.10.2011 22:36
Изменение размера блока реклама в зависимости от разрешения экрана. toxiz77 Общие вопросы Javascript 3 11.02.2009 14:12
Скрипт, изменения размера картинки soniclord Элементы интерфейса 14 28.10.2008 16:38