Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Преобразование из string v int (https://javascript.ru/forum/css-html/60290-preobrazovanie-iz-string-v-int.html)

Samsam 21.12.2015 18:36

Преобразование из string v int
 
<div id=aaa>Bla bla bla</div>
<script>
var h = document.getElementById('aaa').offsetHeight;</script>";
$h = "<script>document.write(h);</script>";

<?
if ($h<200) { echo "<ul><b>... ПОЧИТАТЬ ПОЛНОСТЬЮ</b></ul>";}
?>

переменную $h не читает как число.

alex.vv 21.12.2015 19:02

1. Атрибуты тегов принято указывать в двойных кавычках.
То есть надо как минимум
<div id="aaa">Bla bla bla</div>

2. Указанный вами код, вероятно, отработает совсем не так, как ожидается. Вы уверены что скопировали его правильно? (и причем тут короткие php теги?)

3. Для получения числа из строки существуют функции parseInt, parseFloat.
Но в вашем случае извлечение offsetHeight и так дает число, так что вы либо не описали все условия, либо пытаетесь решать какую-то другую проблему.

Samsam 21.12.2015 19:20

Объясню.
Есть блок
<div style="
max-heigh:200px;
overflow: hidden;
"></div>
с не определённой высотой height. мне надо что бы если height>200 то выходила ссылка *почитать дальше* и уже выходил весь текст при нажатие на эту ссылку

Vlasenko Fedor 21.12.2015 19:26

var h = +document.getElementById('aaa').offsetHeight;

рони 21.12.2015 19:31

Samsam,
для медитации
если высота блока не превышает например 100px) ссылка свернуть/развернуть не появлялась?

Samsam 21.12.2015 19:31

Если можно поподробней

Vlasenko Fedor 21.12.2015 19:36

Samsam,
вначале отработает php затем ОТРАБОТАЕТ js
перепиши код с озвученными правками
if ($h<200) //здесь $h = "<script>document.write(h);</script>" строке

Samsam 21.12.2015 20:29

.ta{
height:300px;
}

<script>
jQuery(function($) {
var min = 300;
$(".ta").each(function(indx, el) {
var b = $(el),
max = el.scrollHeight,
a = b.next(".read-next");
if (max <= 300) a.hide();
else a.on("click", function(event) {
var h = b.height();
b.height(h < max ? max : min);
$(this).text(h < max ? "" : "");
return false
})
})
});

</script>
спосибо за подсказку.. а вот как вместо height сдлелать max-height
вместо

.ta{
height:300px;
}

.ta{
max-height:300px;
}
..
что нужно изменить в js

рони 21.12.2015 20:40

Samsam,
непонятно о чём вы? потому что нужен отформатированный макет, а не текст
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

возможно вы хотели это
.css({'max-height' : (h < max ? max : min)+'px'})

Samsam 21.12.2015 20:45

<style type="text/css">
.ta{
    height:100px;
  }
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js">
</script>

  jQuery(function($) {
    var min = 100;
    $(".ta").each(function(indx, el) {
        var b = $(el),
            max = el.scrollHeight,
            a = b.next(".read-next");
        if (max <= 100) a.hide();
        else a.on("click", function(event) {
            var h = b.height();
            b.height(h < max ? max : min);
            $(this).text(h < max ? "Svernut" : "OPen all");
            return false
        })
    })
});

  
  
  <div style="height:100%">	
    <div class="ta" style="overflow:hidden">
   text<br>text<br>text<br>texttexttexttext<br>text<br>text<br>texttexttext<br>text<br>text<br>texttext<br>text<br>text<br>
    </div><a class="read-next" href="#">Open</a>
  </div>


Часовой пояс GMT +3, время: 22:53.